我想在Excel VBA代码中处理对象InternetExplorer
的事件。
在此页面上,您可以看到InternetExplorer对象的所有可用事件: http://msdn.microsoft.com/en-us/ie/aa752084(v=vs.94).aspx
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://www.google.com"
While ie.Busy
DoEvents
Wend
Set mybrowser = Nothing
我想抓住BeforeNavigate
和NavigateComplete
个事件,上面的代码应该触发。
我如何设置我的代码呢?
答案 0 :(得分:1)
将Dim
与WithEvents
关键字一起使用。
<强>语法强>
Dim [ WithEvents ] varname [([subscripts])] [As [New] type] [,[WithEvents] varname [([subscripts])] [As [New] type]] 。 。
WithEvents :可选。指定varname是用于响应ActiveX对象触发的事件的对象变量的关键字。 WithEvents仅在课程模块中有效。您可以使用WithEvents声明任意数量的单个变量,但不能使用WithEvents创建数组。你不能在WithEvents中使用New。
Clmusy示例Class1
类模块,仅供参考:
Option Explicit
Dim WithEvents ie As InternetExplorer
Private Sub Class_Initialize()
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://www.duckduckgo.com"
While ie.Busy
DoEvents
Wend
Set ie = Nothing
End Sub
使用示例:
Sub tester()
Dim c As Class1
Set c = New Class1
End Sub