UserForm WebBrowser веб-соскоб - PullRequest
0 голосов
/ 11 июня 2019

У меня есть веб-браузер в UserForm и я хотел бы автоматизировать процедуру для кнопки в UserForm. Поэтому, как только пользователь нажимает кнопку на пользовательской форме с кодом окна браузера, следует выполнить очистку веб-страниц. Это работает, если его нет в веб-браузере UserForms. Так что теперь, когда это внутри UserForm, он делает код до:

    Application.Wait (Now + TimeValue("0:00:04"))

    .Document.querySelector("[name=import_budgets]").Click

После этого я получаю сообщение об ошибке .Document.querySelector("[name=import_budgets]").Click. Также веб-браузер не «обновляет» (переход на следующую страницу), я вижу, что это было сделано .Document.querySelector(".data .a_1_611").Click и перемещено на следующую страницу только после получения ошибки. Веб-браузер выполняет операции, но они не видны пользователю, возможно, поэтому он не может перейти к следующей операции. Как сделать эту работу правильной?

   With LCountry.WebBrowser1

    Application.Wait (Now + TimeValue("0:00:02"))

    If ThisWorkbook.Sheets("Other Data").Range("AL21").Value = 2 Then

    .Document.querySelector(".data .a_1_611").Click

    Else

    .Document.querySelector(".data .a_1_610").Click

    End If

    Application.Wait (Now + TimeValue("0:00:04"))

    .Document.querySelector("[name=import_budgets]").Click

'Unload IE

    If Err <> 0 Then

       MsgBox "There was an error running the code. Check your Internet and VPN connection. Please try one more time!"
       Else

    End If

    On Error GoTo 0
End With

1 Ответ

0 голосов
/ 12 июня 2019

Эта проблема была решена путем добавления:

    While .Busy
      DoEvents
    Wend
    While .ReadyState <> 4
      DoEvents
    Wend

К каждой операции очистки веб-страниц в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...