运行时错误'-2146959355(80080005)':服务器执行vba失败

问题描述 投票:0回答:1

我正在尝试自动化一项任务,其中将根据 Excel 文件的值自动发送 Outlook 电子邮件。但是,当我使用任务计划程序时,发送到电子邮件选项不起作用。

当我尝试手动启动 VBScript 文件或从 Excel 运行宏时,它工作正常。调试期间,

Set MyOutlook = New Outlook.Application
突出显示

Dim MyOutlook As Outlook.Application
Set MyOutlook = New Outlook.Application


Dim MyMail As Object
Set MyMail = MyOutlook.CreateItem(olMailItem)

MyMail.To = "[email protected]"
MyMail.CC = "[email protected]"
MyMail.Subject = "Sample Alert"
MyMail.Body = "Hello Team," & vbNewLine & _
            " " & vbNewLine & _
            "Kindly check this Alert" & vbNewLine & _
            " " & vbNewLine & _
            "Thanks!" & vbNewLine & _
            " " & vbNewLine & _
            "Surname"
              
vba outlook vbscript windows-task-scheduler office-automation
1个回答
0
投票

首先,Microsoft 目前不建议也不支持从任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)实现 Microsoft Office 应用程序的自动化,因为 Office 可能会当 Office 在此环境中运行时,会表现出不稳定的行为和/或死锁。

如果您正在构建在服务器端上下文中运行的解决方案,则应尝试使用可安全执行无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺乏许多成功运行所需的功能。此外,您还将面临整体解决方案稳定性的风险。请阅读Office 服务器端自动化的注意事项 文章了解更多相关信息。

如果您正在处理 Exchange,您可以考虑使用 EWS、Graph API。


还要确保执行脚本时 Outlook 未运行。 Outlook 是单例,这意味着系统上只能运行一个实例。如果它已经在不同的安全上下文下运行,您的代码将无法使用

New
运算符获取正在运行的实例。

© www.soinside.com 2019 - 2024. All rights reserved.