Использование планировщика заданий для запуска файла VBS для запуска макроса Excel VBA - PullRequest
0 голосов
/ 11 июля 2019

У меня есть макрос Excel VBA, который обновляет файл Excel, в основном просматривая записи, чтобы определить, прошли ли некоторые новые сотрудники обучение в различные моменты до того, как они достигнут 90 дней, и, если нет, рассылает электронные письма группам рассылки в виде напоминание. Я хотел бы, чтобы этот макрос запускался автоматически один раз в день, чтобы мой компьютер просматривал файл и запускал электронные письма, когда для каждой записи наступает конкретный этап.

Макрос Excel работает отлично. Когда я вручную запускаю файл VBS, он работает отлично.

Когда я пытаюсь запустить (вручную или по расписанию) из планировщика задач, журнал показывает, что он завершается, но макрос не запускается.

Я попытался использовать оба параметра: «Запускать только когда пользователь вошел в систему» ​​и «Запускать независимо от того, вошел пользователь в систему или нет», и оба результата имели одинаковый результат. Моя учетная запись пользователя (Bachenheimere) отображается как та, которая используется для запуска задачи, поэтому у меня, очевидно, есть права на запуск файла.

Для планировщика заданий я использую Действие: Запустите программу

Сценарий программы: "C:\Windows\SysWOW64\cscript.exe"

Добавить аргументы: "C:\Users\Bachenheimere\RunExcelMacroForCoachTracking.vbs"

Task Scheduler Pic1

Task Scheduler Pic2

Опять же, журнал планировщика заданий показывает, что он успешно завершается примерно через 1,5 минуты (когда я запускаю вручную, он завершается примерно через 15-20 секунд). Я бы предпочел не запускать файл VBS вручную каждый день, поэтому, если кто-то может помочь бедному новичку в этом, я был бы очень признателен!

Вот код файла VBS:

Dim xlApp, xlBook


Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\Bachenheimere\file.txt",2,true)

Set xlApp = CreateObject("Excel.Application")
objFileToWrite.WriteLine(FormatDateTime(Now) & "Create Excel Object")
xlApp.Application.Visible = True
objFileToWrite.WriteLine(FormatDateTime(Now) & "App Visible = True")
xlApp.DisplayAlerts = False
objFileToWrite.WriteLine(FormatDateTime(Now) & "Display ALerts = False")
Set xlBook = xlApp.Workbooks.Open("H:\EmCare\Clinical Services\Provider Coaching\NEOU Tracking\Coach Trackingv3.xlsm", 0, True)
objFileToWrite.WriteLine(FormatDateTime(Now) & "Excel book opened")

xlApp.Run "Sheet1.SendReminderMail"
objFileToWrite.WriteLine(FormatDateTime(Now) & "Macro is run")

xlBook.Save
objFileToWrite.WriteLine(FormatDateTime(Now) & "Macro is saved")


xlBook.Close
objFileToWrite.WriteLine(FormatDateTime(Now) & "Book closed") 

xlApp.Quit
objFileToWrite.WriteLine(FormatDateTime(Now) & "App Quit")

objFileToWrite.Close
Set objFileToWrite = Nothing

set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Your Automated Task successfully ran at " & TimeValue(Now)
WScript.Quit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...