*将HTML对象库与vba一起使用 *(CAS设置为浏览器实例(shdocvw))
Set HTMLDoc = CAS.document.frames("MainFrame").document 'pull the main frame
Do Until Not HTMLDoc Is Nothing
DoEvents
Loop
我不认为这是正确的,因为它只会设置一次HTMLDoc,如果它什么也没有,它会一遍又一遍地循环,检查它是什么,但因为它只被调用一次。一个更好的方法,imho,可以检查一个元素并循环,直到元素存在,因为页面可以加载,但我从DB中拉出的元素需要半秒钟左右。我只是不确定如何编写循环以继续设置htmldoc,然后继续检查其中的元素并非一无是处。 (即使我的等待计时器没有等待足够长的时间,也是如此,在元素存在之前不应该继续)
答案 0 :(得分:2)
如果您想等待特定元素:
Dim el As Object
Do
Set el = Nothing
On Error Resume Next
Set el = CAS.document.frames("MainFrame").document.getElementById("idHere")
On Error GoTo 0
DoEvents
Loop While el Is Nothing
您可能希望在最长等待时间内构建,因此如果由于某种原因元素永远不会出现,则不会无限循环。