Сценарий планировщика заданий для открытия Excel работает, но не загружает указанную надстройку c - PullRequest
1 голос
/ 04 февраля 2020

ниже - краткое изложение моей проблемы, любые рекомендации, которые вы можете дать, будут очень благодарны.

Цель: Используйте планировщик задач, чтобы открыть 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

1 Ответ

0 голосов
/ 05 февраля 2020
  • Убедитесь, что ваш файл находится в пути надстройки по умолчанию Excel

    C:\Users\<username>\AppData\Roaming\Microsoft\AddIns\
    

    , вы можете получить этот путь, запустив MsgBox Application.UserLibraryPath.

  • Или, если вы используете другой путь, убедитесь, что ваш собственный путь является «Надежное расположение» в Центре управления безопасностью Excel.

    1. В Excel щелкните Вкладка «Файл» и нажмите Параметры
    2. В списке слева нажмите Центр управления безопасностью
    3. Нажмите Параметры центра управления безопасностью button
    4. В списке слева нажмите Надежные расположения
    5. Если вашей папки там нет в списке, нажмите кнопку Добавить новое местоположение
    6. Нажмите кнопку Просмотр
    7. Найдите и выберите свою папку и нажмите OK
    8. Нажмите OK снова, и ваша папка должна появиться в списке Надежное расположение .
    9. Дважды щелкните OK , чтобы закрыть windows.

Если все это делает Ничего не помогло, проверьте в дополнение к указанному выше , если это помогает: Excel COM add не загружается во время запуска и нужно добавить его вручную .

...