Как исправить ошибку «Ошибка выполнения 429: компонент ActiveX не может создать объект» при использовании планировщика заданий для запуска макроса VBA Селена в Excel? - PullRequest
0 голосов
/ 10 января 2019

У меня есть макрос в 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.

  1. В планировщике задач на вкладке Действия у меня есть следующее:
    "C:\Users\SKhany\Google Drive\myexample\mystuff tasks\RunMacroUploadAsia.vbs"

  2. Вот скрипт 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 
    
  3. Тогда макрос 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...