【问题标题】:Automation error: The object invoked has disconnected from its clients自动化错误:调用的对象已与其客户端断开连接
【发布时间】:2022-03-29 17:14:09
【问题描述】:

我所做的只是将一段在不同子目录中运行良好的代码复制粘贴到我的新子目录中,然后更改我想要导航的 URL。第一个 sub 仍然有效,但第二个无效。我很困惑。

Dim ie As InternetExplorer              
Dim html As HTMLDocument                 
Set ie = New InternetExplorer            
ie.Visible = False                       
ie.navigate "http://cesp.hma.eu/Contacts" 
With ie                                  
    Do Until .READYSTATE = 4: DoEvents: Loop
    Do While .Busy: DoEvents: Loop
End With
Set html = ie.document             
Set ie = Nothing                   
Application.StatusBar = ""  

使用F8一步步检查代码,似乎URL忽略了ie.Visible = False(到达With ie时打开),然后在Do While .Busy: DoEvents: Loop上弹出错误

老实说,我不知道从哪里着手解决这个问题,因为我字面意思只更改了 URL,没有其他任何内容。我最好的选择是关闭我的工作簿并重新打开它,但问题仍然存在。您能提出的任何提示、解释或解决方案将不胜感激。

【问题讨论】:

  • 您是否尝试将其关闭再打开?
  • 好吧,我重新启动了我的整个计算机,它看起来并没有任何改变:p 除了半开玩笑之外,我不完全确定你的意思。
  • 因此,如果您将新 sub 中的 URL 更改回旧 sub 中的 URL,它仍然会抛出错误吗?知道这一点会很方便,因此您可以将其范围缩小到网站问题或代码问题。
  • 哦,这种恐怖也困扰着我。我的猜测是它与 IE 中的安全设置有关。请尝试设置 ie = New InternetExplorerMedium。这对我有帮助。
  • @Tim - 将其改回之前的 URL 使代码再次工作,因此看起来问题出在页面本身。

标签: vba excel


【解决方案1】:

这可能与 IE 中的安全设置有关。按照@Vigneshts88 here 的建议,尝试更改

Set ie = New InternetExplorer 

到:

Set ie = New InternetExplorerMedium

正如@Mike 在上述答案下方的评论中所指出的,InternetExplorerMedium 需要引用 Microsoft Internet Controls

【讨论】:

    【解决方案2】:

    是的宝贝!

    设置 ie = 新 InternetExplorerMedium

    帮我修好了!

    迫不及待地想让这些东西发挥作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2017-07-13
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多