【发布时间】:2019-04-23 07:06:38
【问题描述】:
我在使用 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”的方法“文档”失败。
有什么想法来自此错误以及我应该添加什么以在 VDI 上成功运行它?
【问题讨论】:
-
只是好奇,虚拟机中的IE是什么版本的?
-
@Yane 版本:11.0.9600.19326 与我的本地计算机上的相同
-
哪一行会报错?我怀疑它:
Body = ObjIE.document.Body.innerHTML? -
另外,你有潜在的无限循环:当你第一次进入
Do循环时,如果你的错误不是0,你正在使用Goto跳出循环然后来回到循环而不重置err值。所以一旦err的值不为0,你就有了一个无限循环 -
@Zac yup - 在这一行
标签: excel vba internet-explorer vdi