代码使用F8,但不使用';带F5的t-vba web刮片

代码使用F8,但不使用';带F5的t-vba web刮片,vba,excel,web-scraping,Vba,Excel,Web Scraping,我有下面的代码,当从VBA内部使用F8运行时效果很好,但是当使用F5运行时,它会抛出一个错误…当我检查错误时,我看到doc variable为空。原因是什么?我如何修复它,使其运行时不会出现任何错误: Sub b() Dim ie As New InternetExplorer Dim doc As HTMLDocument 'Dim con As Object ie.navigate "https://www.techinasia.com/companies/worq-2" D

我有下面的代码,当从VBA内部使用F8运行时效果很好,但是当使用F5运行时,它会抛出一个错误…当我检查错误时,我看到doc variable为空。原因是什么?我如何修复它,使其运行时不会出现任何错误:

    Sub b()

Dim ie As New InternetExplorer
Dim doc As HTMLDocument
'Dim con As Object


ie.navigate "https://www.techinasia.com/companies/worq-2"

Do
    DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE

Set doc = ie.document

j = 0
    Do Until j = 3
    Set con = doc.getElementsByClassName("entity__type")(j)
    Cells(5, 3 + j).Value = doc.getElementsByClassName("entity__type")(j).innerText
    j = j + 1
    Loop

ie.Quit

End Sub

什么错误,抛出在哪里?通常这指向一个时间问题:当您尝试访问文档对象时,页面未完全加载。尝试在
Set doc=
行之前在代码中放置一个等待。我已经添加了这行代码:
Application.Wait(现在+时间值(“0:00:3”))
Set doc=
Set con=
之前,在这种情况下它可以工作。但这是我不明白的…我认为检查
ie.readyState=readyState\u COMPLETE
应该足够了,但似乎不够。请解释一下,页面可能已加载,但后台可能有异步页面进程。另一种方法是编写一个等待循环,直到元素出现(当然要限制读取计数)。如何检查元素何时出现?我可以使用smth来验证html页面的加载方式吗?e、 g.
readyState=readyState\u完成