首页 > 解决方案 > UserForm WebBrowser 网页抓取

问题描述

我在 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. 网络浏览器也没有“刷新”(移动到下一页),我看到它已经完成.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

标签: excelvbaweb-scraping

解决方案


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

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

到代码中的每个 Web 抓取操作。


推荐阅读