自动化错误系统调用失败 - Outlook和Excel VBA

时间:2018-04-19 01:07:33

标签: excel vba excel-vba outlook outlook-vba

这里很难过。获取运行时错误-2147417856(80010100)自动化错误系统调用失败

我有一些运行脚本的Outlook规则。

第一个Outlook脚本打开一个excel文件并在excel文件中运行宏并重复这两次(如下所示)。然后Outlook脚本关闭Excel并退出子。在第二个Excel文件的宏中发生错误。

'First File

Set xlApp = CreateObject("Excel.Application")

xlApp.Visible = False

xlApp.Application.DisplayAlerts = False

xlApp.Application.EnableEvents = False

Set xlWork = xlApp.Workbooks.Open(strPath & "\File1.xlsm")

xlWork.Application.Run "Macro1_Module.Macro1"

xlWork.Application.Run "Macro2_Module.Macro2"

xlWork.SaveAs FileName:=savepath1, FileFormat:=xlOpenXMLWorkbook

xlWork.Close

Set xlWork = Nothing

xlApp.Application.DisplayAlerts = True

xlApp.Application.EnableEvents = True

xlApp.Quit

Set xlApp = Nothing

'Second File

Set xlApp = CreateObject("Excel.Application")

xlApp.Visible = False

xlApp.Application.DisplayAlerts = False

xlApp.Application.EnableEvents = False

Set xlWork = xlApp.Workbooks.Open(strPath & "\File2.xlsm")

xlWork.Application.Run "Macro1_Module.Macro1"

xlWork.Application.Run "Macro2_Module.Macro2"

xlWork.SaveAs FileName:=savepath2, FileFormat:=xlOpenXMLWorkbook

xlWork.Close

Set xlWork = Nothing

xlApp.Application.DisplayAlerts = True

xlApp.Application.EnableEvents = True

xlApp.Quit

Set xlApp = Nothing

excel文件中的宏使用Excel中的数据创建电子邮件,并通过Outlook(CreateObject(" Outlook.Application"))发送。这使用以下代码生成电子邮件。

Set OutApp = CreateObject("Outlook.Application")

OutApp.Session.Logon

Set Outmail = OutApp.CreateItem(0)

On Error Resume Next

With Outmail

.To = ""

.CC = ""

.BCC = ""

.Subject = "Test"

.HTMLBody = "TEST"

.Attachments.Add (ActiveWorkbook.Path & "\" & ActiveWorkbook.Name)

End With

Outmail.Display

On Error GoTo 0

Set Outmail = Nothing

Set OutApp = Nothing

第一个Outlook脚本有时会在第一个运行时触发。我认为规则创建了积压并且一个接一个地运行。当第一个脚本在Outlook和Excel中运行时,在第二个电子邮件进入后触发第二个Outlook脚本(类似于第一个脚本但打开另一个文件)时出错。第一个脚本通过Excel宏(在第二个文件中)运行时出现以下错误消息,当您调试时,它突出显示

Set OutApp = CreateObject("Outlook.Application")

当这两个电子邮件触发的Outlook脚本间隔足以让一切都完成时,不会发生此错误。所以我知道这两个脚本在单独运行时有效(我已经测试了这个)。

有谁知道可能导致这种情况发生的原因?如果其中一个当前在Excel中工作,可以同时运行两个触发脚本的电子邮件规则吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

错误是RPC_E_SYS_CALL_FAILED,这很可能意味着Outlook在不同的安全上下文中运行。确保它们是相同的,并且这两个应用程序都没有以管理员的提升权限运行。