Я пытаюсь запустить скрипт, который открывает файл Excel, выполняет несколько макросов внутри файла и закрывает указанный файл. Сценарий выполняется точно так, как ожидалось, когда я запускаю его из командной строки вручную.
Однако, когда я планирую задачу для запуска сценария, сценарий выполняется до последнего этапа, и я получаю всплывающее сообщение в Excel с надписью «Ошибка выполнения сервера».
Вот некоторые из вещей, которые я пробовал, все выдали одно и то же сообщение об ошибке Excel:
- Запланируйте задачу для запуска сценария VBS с помощью cscript.exe
- Запланируйте задача запустить скрипт vbs напрямую из cmd
- настроить скрипт bat для запуска скрипта vbs через приглашение cmd
- пробовал запускать 32-битные и 64-битные версии для каждой версии
- поместите все файлы и сценарии в одну папку и перепробовал все предыдущие три
- Я играл с различными настройками в планировщике задач, чтобы запускаться при входе / выходе из системы; компьютер проснулся и c.
- Пользовательские разрешения конфигурации через dcomcnfg и дали пользователю (мне) «полный контроль»
- Отбросил «Уровень аутентификации» до «Нет»
Другие подробности:
- Я использую Windows 10 64-бит и Office 10
- Сам файл Excel сохраняется как файл xlsb с размером 8,741 КБ
- У меня есть три другие задания, которые похожи на эту, и все они выполняются без проблем
- У меня есть права администратора на моей машине
- Скрипт запускается как я (т.е. , используя мой профиль / учетную запись)
Это скрипт vbs, "средство запуска макросов" (изначально получено из здесь ):
'Input Excel File's Full Path
ExcelFilePath = "C:\Users\person\Desktop\script\filewithmacros.xlsb"
'Input Module/Macro name within the Excel File
MacroPath1 = "Module2.LoadAddins"
MacroPath2 = "Module4.ForceCalc"
MacroPath3 = "Module1.SendPDF"
'Create an instance of Excel
Set ExcelApp = CreateObject("Excel.Application")
'Do you want this Excel instance to be visible?
ExcelApp.Visible = True 'or "False"
'Prevent any App Launch Alerts (ie Update External Links)
ExcelApp.DisplayAlerts = TRUE
'Open Excel File
Set wb = ExcelApp.Workbooks.Open(ExcelFilePath)
'Execute Macro Code 1
ExcelApp.Run MacroPath1
'Force Calculation
ExcelApp.Calculate
'Execute Macro Code 2
ExcelApp.Run MacroPath2
'For a wait for calc to finish
WScript.Sleep 180000
'Execute Macro Code 3
ExcelApp.Run MacroPath3
'Reset Display Alerts Before Closing
ExcelApp.DisplayAlerts = True
'Save Excel File (if applicable)
wb.Save
'Close Excel File
wb.Close
'End instance of Excel
ExcelApp.Quit
'Leaves an onscreen message!
MsgBox "Your Automated Task successfully ran at " & TimeValue(Now), vbInformation
Этот скрипт работает отлично, когда мы запускаем его непосредственно из командной строки как
![running from command prompt](https://i.stack.imgur.com/Sre4n.png)
Однако, когда мы планируем задачу для запуска летучей мыши, содержащей тот же код (показано ниже), мы получаем ошибку Excel: «Ошибка выполнения сервера»
cd c:\windows\SysWOW64 C:\Windows\SysWOW64\cscript.exe C:\Users\name\Desktop\script\MacroLauncher.vbs
Учетная запись пользователя f или задача моя (права администратора), и я пробовал оба запуска только при входе в систему только / вошли или нет опции, и оба сбоя
![task action set up](https://i.stack.imgur.com/gAoeW.png)
аргумент добавления:
/c "C:\Users\name\Desktop\script\scriptfilename.bat"
![enter image description here](https://i.stack.imgur.com/iHFIu.png)