我在 Citrix 虚拟桌面上使用 VBA 从网站提取数据时遇到问题。
我首先在本地桌面上编写了代码,效果很好 - HTML 源代码已提取到 Excel 中的单元格中。在VDI IE上打开网站没有任何问题。
法典:
Sub GetBody()
Dim Body As String
the_start:
Set ObjIE = CreateObject("InternetExplorer.Application")
ObjIE.Visible = False
ObjIE.navigate ("https://pl.wikipedia.org/wiki/Wikipedia:Strona_g%C5%82%C3%B3wna")
Do
DoEvents
If Err.Number <> 0 Then
ObjIE.Quit
Set ObjIE = Nothing
GoTo the_start:
End If
Loop Until ObjIE.readyState = 4
Body = ObjIE.document.Body.innerHTML
Cells(1, 1).Value = Body
End Sub
当我尝试在VDI上运行此代码时,出现以下错误:
运行时错误"-2147467259(80004005(":对象"IWebBrowser2"的方法"文档"失败。
任何想法来自此错误以及我应该添加什么才能在VDI上成功运行它?
我做了一些评论中提到的更改(例如更改无限循环等(,并且还有另一个错误(自动化错误调用的对象已与其客户端断开连接(。以前,我已经在下面的这一行中将IE声明为对象:
Set ObjIE = CreateObject("InternetExplorer.Application")
我所有问题的灵魂:
Dim IE as SHDocVw.InternetExplorer
Set IE = New InternetExplorerMedium
感谢大家参与这个话题,非常感谢你们的帮助!