У меня есть макрос в Excel, который использует библиотеку Selenium Basic Type Library для открытия Chrome и автоматизации нескольких веб-задач в браузере Chrome. Я настроил VBS для запуска макроса, и он работает гладко вручную, когда я дважды щелкаю VBS.
Вот поток:
Планировщик задач -> RunMacroUploadAsia.vbs для запуска макроса WeekendNoRunAsia в WeeklyUpload.xlsm -> Завершить макрос WeekendNoRunAsia и запустить макрос UploadPostAsia, чтобы открыть браузер Chrome для выполнения нескольких веб-задач.
Когда я использую планировщик заданий Windows для запуска сценария VBS для запуска макроса Excel по расписанию,
«Ошибка времени выполнения 429, компонент ActiveX не может создать объект»
ошибка появляется в окне Excel. Когда я отлаживаю макрос, он застревает в этой строке кода в макросе UploadPostAsia:
Set D = New ChromeDriver
Почему VBS работает нормально вручную, а не в планировщике задач?
Вот установка моей ситуации. VBA написана в Excel 2007, и у меня установлена библиотека типов Selenium (SeleniumBasic v2.0.9.0). Мой ноутбук работает под управлением Windows 7 Home Basic 64 bit и мой браузер Chrome v71.0.3578.98.
В планировщике задач на вкладке Действия у меня есть следующее:
"C:\Users\SKhany\Google Drive\myexample\mystuff tasks\RunMacroUploadAsia.vbs"
Вот скрипт RunMacroUploadAsia.vbs:
Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("C:\Users\SKhany\Google Drive\myexample\mystuff tasks\WeekdayUpload.xlsm", 0, True)
xlApp.Run "WeekendNoRunAsia"
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Тогда макрос WeekendNoRunAsia будет запускаться после UploadPostAsia (код показан ниже), а затем планировщик задач застрянет на
Set D = New ChromeDriver
Рабочий процесс работает, если я не использую планировщик заданий, и я попытался изменить код на Set D = New Selenium.Chromedriver
, но у меня все еще возникает та же ошибка. Мне нужно запускать эти рабочие процессы каждый будний день, и я действительно хотел бы исправить проблему с помощью планировщика задач или, если есть какой-либо другой способ планирования VBS, приветствуется. Ценю любую помощь вам в этом.
Public Sub UploadPostAsia()
Dim ws As Worksheet
Dim D As WebDriver
Dim i As Integer
Set ws = ThisWorkbook.Worksheets("Data")
Set D = New ChromeDriver
Const URL = "https://www.myexample.com/login/"
'To login to website
With D
.Start "Chrome"
.Window.Maximize
.Get URL
.FindElementById("user_login").SendKeys(ws.Cells(2, 1)).Click
.FindElementById("user_pass").SendKeys(ws.Cells(2, 2)).Click
.FindElementByName("submit").Click
End With
'Perform some web tasks
End Sub