Я пытаюсь запустить скрипт, который открывает файл 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
Этот скрипт работает отлично, когда мы запускаем его непосредственно из командной строки как
Однако, когда мы планируем задачу для запуска летучей мыши, содержащей тот же код (показано ниже), мы получаем ошибку Excel: «Ошибка выполнения сервера»
cd c:\windows\SysWOW64 C:\Windows\SysWOW64\cscript.exe C:\Users\name\Desktop\script\MacroLauncher.vbs
Учетная запись пользователя f или задача моя (права администратора), и я пробовал оба запуска только при входе в систему только / вошли или нет опции, и оба сбоя
аргумент добавления:
/c "C:\Users\name\Desktop\script\scriptfilename.bat"