哪个.dll包含HTMLElement类?

时间:2013-12-11 22:37:12

标签: excel internet-explorer vba excel-vba

我正在使用Excel中的VBA(Office 2010)浏览Internet Explorer中的网页。我的问题是我无法声明HtmlElement的实例,例如

Dim myHtmlEl As HtmlElement

返回错误“用户定义的类型未定义。”

在我想要声明InternetExplorer对象的实例之前,我已经看到过这个问题。解决方案是通过工具>>创建参考。参考文献...>> VBA编辑器中的Microsoft Internet Controls 。我的理解是 Microsoft Internet Controls 是一个.dll,其定义为InternetExplorer类。

因此,要创建HtmlElement对象的实例,我需要引用定义该类的.dllMSDN表明.dll系统Windows窗体。我把它链接起来但是这个类仍未定义。

我如何知道哪个.dll包含HtmlElement类?

1 个答案:

答案 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论坛。