【发布时间】:2019-08-08 20:27:52
【问题描述】:
在执行某些分析后,我创建了几个脚本来发送电子邮件。这以前有效。现在一些脚本失败并给出以下错误消息:
运行时错误“429”:
ActiveX 组件无法创建对象
然后它将 Outlook 对象代码行称为错误。
脚本在我退出 MS Outlook 时运行,如果 Outlook 正在运行,则会出错。我使用任务计划程序来运行它,而 Outlook 通常会运行。
Private Sub Send_Ratings_Email()
Dim OutApp As Object, OutMail As Object
Dim rng As Range
Dim StrBody As String
StrBody = "Please find Maturities for the Current Week Below: "
Application.ScreenUpdating = False
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
On Error GoTo 0
If OutApp Is Nothing Then Set OutApp = GetObject("Outlook.Application")
On Error GoTo cleanup
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
Call AddAzureLabel(OutMail, "Restricted - Internal")
With OutMail
.To = " example.com"
.Subject = "Weekly Maturities - W/C " & Format(Now, "dd-mmm-yy")
.HTMLBody = StrBody & RangetoHTML(rng)
.Display 'Or use .Send
End With
On Error GoTo 0
Set OutMail = Nothing
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
Powershell 脚本在手动运行时有效。
【问题讨论】:
-
您的环境最近是否发生了变化?这可能是 Outlook 中不允许编程访问的安全设置。您可能需要在“文件”>“选项”>“信任中心”>“信任中心设置”>“程序访问”中进行切换。
-
嗨大卫 - 感谢您的帮助。这部分似乎还可以。我不明白为什么从任务计划程序中的 Powershell 脚本调用 Excel 宏不起作用
-
嗯。有很多关于微软可能的错误来源的信息,这里:support.microsoft.com/en-us/help/828550/…
-
我很想知道您在使用
GetObject而不是CreateObject时是否遇到相同的 powershell/任务调度程序错误。 -
我已经取出了代码 If OutApp Is Nothing Then Set OutApp = CreateObject("Outlook.Application") 现在所发生的只是任务调度程序执行分析并关闭
标签: excel vba outlook automation runtime-error