我在Citrix Virtual Desktop上使用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'的方法'Document'失败。
有什么想法可以指出此错误的根源以及我应该添加些什么才能在VDI上成功运行它?
答案 0 :(得分:1)
我已经做了一些注释中提到的更改(例如更改了无限循环等),并且还遇到了另一个错误(自动化错误,所调用的对象已与其客户端断开连接。)以前,我在此将IE声明为对象。下面的行:
import functools
functools.reduce(lambda acc, y: acc + y[1], array, 0) / len(array)
我所有问题的忠告:
Set ObjIE = CreateObject("InternetExplorer.Application")
感谢大家参与此主题,非常感谢您的帮助!