我有一个网页,其中包含HTML Span中的一些文字,如下所示:
<span id="ctl00_ContentPlaceHolder1_FormView1_GridView1_ctl02_lb_ExpiryDate">Expiry Date : 16/02/2018</span>
我正在尝试使用以下代码将此值显示为excel中的消息:
Sub PullExpiry()
Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")
With appIE
.Navigate "https://www.brcdirectory.com/InternalSite//Site.aspx?BrcSiteCode=" & Range("J6").Value
.Visible = True
End With
Do While appIE.Busy Or appIE.ReadyState <> 4
DoEvents
Loop
Set getPrice = appIE.Document.getElementById("ctl00_ContentPlaceHolder1_FormView1_GridView1_ctl02_lb_ExpiryDate")
Dim myValue As String
myValue = getPrice.innerText
appIE.Quit
Set appIE = Nothing
MsgBox myValue
End Sub
这是在我的笔记本电脑(操作窗口)上工作,但它不能在我的电脑上运行(也可以在操作窗口)。两个窗口都是相同版本的IE版本。我无法解释。
我在两个引用中都启用了Microsoft Office和Excel对象库。
我收到有关活动x组件无法创建内容的错误
请有人告诉我我哪里出错了吗?
答案 0 :(得分:0)
您需要在引用中添加Microsoft Internet Controls
才能创建对象。您可能需要在计算机上注册shdocvw.dll
库。它可能已在您的笔记本电脑上注册,这就是为什么它可能会在您的计算机上轰炸。
<强> How to register a .dll 强>
MSDN Documentation :查看C#
示例前的最后一句话。
<强> Similar Question 强>
在玩了一下并确保所有内容都已注册后,我的电脑上运行正常:
Public Sub ie()
Dim ieApp As SHDocVw.InternetExplorerMedium
Dim html As HTMLDocument
Set ieApp = New SHDocVw.InternetExplorerMedium
ieApp.Visible = True
ieApp.Navigate "http://internalAddress/"
Do While ieApp.Busy Or ieApp.ReadyState <> 4
DoEvents
Loop
Set html = ieApp.Document.getElementById("myID")
End Sub