ниже - краткое изложение моей проблемы, любые рекомендации, которые вы можете дать, будут очень благодарны.
Цель: Используйте планировщик задач, чтобы открыть Excel и выполнить макрос, который отправляет PDF листа Excel через Outlook.
Проблема: Файл Excel использует надстройку COM (расположенную по тому же пути, что и мой файл, но на несколько уровней выше) для извлечения данных для отчета, который будет распространяться , Однако, когда планировщик задач открывает экземпляр Excel, необходимая надстройка не загружается и, следовательно, отчет не обновляется (другие надстройки загружаются просто отлично). Все остальные части процесса работают как положено.
Что мы попробовали: Отключено / включено приглашение обновления ссылок (автоматически устанавливается обновление без запроса). Я попытался открыть случайный пустой файл Excel, чтобы увидеть, будет ли загружаться надстройка (это не так). Гарантируется, что все остальные экземпляры Excel (например, ghost Excels) закрыты из диспетчера задач. Обращался к разработчикам надстройки, но пока не слышал. FWIW, когда я вручную делаю в точности шаги, изложенные в скрипте, все работает отлично. Не удается загрузить надстройку только при использовании сценария для открытия Excel.
Мы довольно плохо знакомы с использованием планировщика задач и приветствуем ваши мысли. Я включил сценарий ниже для вашей справки. Пожалуйста, дайте нам знать, если есть какая-либо дополнительная информация, которая может быть полезна.
Спасибо за ваше время и вашу помощь.
'Input Excel File's Full Path
ExcelFilePath = "C:\mypath\myfile.xlsb"
'Input Module/Macro name within the Excel File
MacroPath = "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 = False
'Open Excel File
Set wb = ExcelApp.Workbooks.Open(ExcelFilePath)
'Execute Macro Code
ExcelApp.Run MacroPath
'Save Excel File (if applicable)
wb.Save
'Reset Display Alerts Before Closing
ExcelApp.DisplayAlerts = True
'Close Excel File
wb.Close
'End instance of Excel
ExcelApp.Quit