UserForm WebBrowser Web抓取

时间:2019-06-11 12:45:39

标签: excel vba web-scraping

我在UserForm中具有Web浏览器,并希望自动执行UserForm中的按钮操作过程。因此,一旦用户单击带有浏览器窗口代码的UserForm上的按钮,就应该进行网络抓取。如果不在UserForms Web浏览器中,则此方法有效。因此,现在当它位于UserForm中时,它将执行代码直到:

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

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

此后,我在.Document.querySelector("[name=import_budgets]").Click上遇到错误。另外,Web浏览器未“刷新”(移至下一页),我看到它已经完成.Document.querySelector(".data .a_1_611").Click并仅在收到错误后才移至下一页。 Web浏览器可以执行操作,但用户看不到它们,这可能就是为什么它无法继续进行下一个操作的原因。如何使这项工作正确?

   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 :(得分:0)

通过添加以下内容解决了此问题:

...
Parent := Panel1;
Position := poDesigned; // add this line
BorderStyle := bsNone;  // and this for a better embedded appearance
Top := 10;
...

使用代码进行每个Web抓取操作。