Цілком тупиться тут. Отримання помилки під час виконання -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?
Відповіді:
0 для відповіді № 1Помилка RPC_E_SYS_CALL_FAILED, більшість з якихймовірно означає, що Outlook працює в різних контекстах безпеки. Переконайтеся, що вони однакові, і жодна з програм не працює з підвищеними привілеями як адміністратор.