我正在使用Excel中的VBA(Office 2010)浏览Internet Explorer中的网页。我的问题是我无法声明HtmlElement
的实例,例如
Dim myHtmlEl As HtmlElement
返回错误“用户定义的类型未定义。”
在我想要声明InternetExplorer
对象的实例之前,我已经看到过这个问题。解决方案是通过工具>>创建参考。参考文献...>> VBA编辑器中的Microsoft Internet Controls 。我的理解是 Microsoft Internet Controls 是一个.dll
,其定义为InternetExplorer
类。
因此,要创建HtmlElement
对象的实例,我需要引用定义该类的.dll
。 MSDN表明.dll
是系统Windows窗体。我把它链接起来但是这个类仍未定义。
我如何知道哪个.dll包含HtmlElement
类?
答案 0 :(得分:2)
late binding solution可能符合您的需求。
Dim myHtmlElement As Variant
Dim IE As Variant
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "http://www.stackoverflow.com/"
' Wait while site is loading
While IE.Busy: DoEvents: Wend
' Get An Element
Set myHtmlElement = IE.Document.getElementById("myInput")
' Set the value of an element
If Not myHtmlElement Is Nothing Then myHtmlElement.Value = ActiveCell.Value
' Click a button
Set myHtmlElement = IE.Document.getElementById("searchButton")
myHtmlElement.Click
' Wait while site is loading
While IE.Busy: DoEvents: Wend
' Navigate the IE object
Dim i As Integer
For i = 0 To IE.Document.getElementsByTagName("a").Length - 1
If IE.Document.getElementsByTagName("div").Item(i).innerText Like "ab*" Then
' Do Something
End If
Next
以上代码基于链接的MSDN论坛。