使VBA等到资源管理器准备好

时间:2018-11-21 00:26:04

标签: internet-explorer refresh wait ready

我有一个代码可以从网址中提取表格数据。

我需要执行vba来执行clik操作(取消隐藏最后一张表),仅在调试模式下才能返回预期结果。

Set objCollection = html.getElementsByClassName("{a keyword is entered here}")

objCollection(0).Click

如果我只运行代码,似乎没有执行点击操作。

如果我在单击命令后立即停止运行代码,然后再次运行代码,那么我会得到预期的结果。

我尝试了很多事情:

  • DoEvents
  • 在其他一些主题中建议的单独子项(“ Refresh_All_Data_Connections”)

类似的问题

有人可以帮助您找到缺少的代码部分吗?

1 个答案:

答案 0 :(得分:0)

尝试使用下面的代码进行测试可能会帮助您解决问题。

Sub demo()
 Dim IE As InternetExplorer
    
    Set IE = CreateObject("InternetExplorer.Application")
       
    IE.navigate "C:\Users\Administrator\Desktop\demo66.html"
    
    IE.Visible = True
    
  While IE.Busy
        DoEvents
  Wend
    Do Until IE.readyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    Do Until IE.document.readyState = "complete"
        DoEvents
    Loop
    
   Set Button = IE.document.getElementById("btn1")
    Button.Click
    
   
End Sub

您需要在以上代码中更改URL和按钮ID。此外,您可以根据需要修改代码。

还要检查脚本是否已被允许,IE是否显示任何提示以允许它。它可以抑制点击。