У меня есть следующий код для запуска макроса, и она работает совершенно замечательно, когда я запускаю его изнутри питонаЗапуск макросов из питона на сервере
try:
xl = win32com.client.Dispatch("Excel.Application")
xlsPath = os.path.expanduser("C:/Users/hidden/Desktop/scripts/someFile.xlsm")
wb = xl.Workbooks.Open(Filename=xlsPath)
xl.Application.Run("GetData")
xl.DisplayAlerts = 0
wb.Save()
xl.Quit()
del xl
except Exception:
xl.Quit()
Теперь, сценарий гораздо больше, чем это, и я нужно, чтобы он выполнялся как запланированное задание (или похожее) один раз в день на сервере. Я создал запланированную задачу, которая работает независимо от того, вошел ли пользователь в систему или нет, и работает так же, как ожидалось, но в тот момент, когда он выполняет макрос, он просто генерирует исключение, и ничего не происходит, как если бы он не выполнялся запустите макрос вообще. Я могу подтвердить, что он не выполняет до открытия Рабочего журнала
задача, которую я запланировал это .bat файл, который содержит следующее, и, как ожидаются, все пути, необходимых в сценарии абсолютные пути
@echo off
python C:\Users\hidden\Desktop\scripts\automateMacros.py %*
Также , когда я дважды щелкните файл битой, он работает, как ожидалось, но не будет работать, как запланированное задание, но я могу подтвердить, что получить запускаемый
EDIT: ошибка Исключение:
(-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Microsoft Excel cannot access the file 'C://Users/hidden/Desktop/scripts/someFile.xlsm'. There are several possible reasons:\n\n\u2022 The file name or path does not exist.\n\u2022 The file is being used by another program.\n\u2022 The workbook you are trying to save has the same name as a currently open workbook.", u'xlmain11.chm', 0, -2146827284), None)
Я только открываю файл после утверждения if, что он существует, это первая доступная книга. Обратите также внимание, если я сразу же запускаю пакетный скрипт, он работает как ожидалось
Попробуйте дать полный путь питона в пакетном файле. например: 'C: \ Python27 \ Python.exe C: \ Users \ hidden \ Desktop \ scripts \ automateMacros.py% *' –
Привет, pss, я все же записывал ошибку в файл журнала; ( – Slavi
Не могли бы вы упомянуть об ошибке? –