使用Excel VBA中的HTML文档对象实现anchor onclick事件
我想从Excel VBA的网站上实现一个锚点标记的onclick事件。 以下代码给我错误信息。
Set iePage = ieApp.document Set ieAnchor = iePage.getElementsByTagName("A").Item(5) ieAnchor.onclick = true
错误消息是一个运行时错误,表示Not Implemented
有人可以请build议让这个事件发生?
顺便说一句,我已经使用基本的iePage.Links(1).click
事件没有问题…但我需要执行一个JavaScript函数从锚onclick事件调用。
如果我正确理解你的问题,你试图用VBA回应用户点击一个锚点? 如果是这样,你需要为OnClick事件创build一个EventHandler。 要做到这一点,你必须重构你的代码,以符合以下标准:
- 您必须使用“WithEvents”关键字来声明所述Anchorvariables以响应事件。
- 要使用“WithEvents”关键字,你必须在模块级声明你的Anchorvariables。
- 您还必须在类模块内使用WithEvents关键字。
- 最后,您需要通过VBE顶部的下拉菜单自己创build事件处理程序,或者粘贴下面的代码。
如何使用代码:创build一个名为“MyClass”的类模块并粘贴如下:
Option Explicit Private WithEvents ieAnchor As MSHTML.HTMLAnchorElement Public Sub Main() Dim iePage As MSHTML.HTMLDocument Set iePage = ieApp.document Set ieAnchor = iePage.getElementsByTagName("A").Item(5) End Sub Private Function mobjMyAnchor_onclick() As Boolean ''//Your Code Here End Function
要使用该类中的代码,可以添加一个标准模块并像这样调用代码:
Public Sub Example() Dim objMyClassVariable As MyClass Set objMyClassVariable = New MyClass objMyClassVariable.Main End Sub
编辑:要调用JavaScript函数,您可以使用JavaScript URLscheme和InternetExplorer.Navigate方法。 例如: ie.Navigate "JavaScript:SomeFunc()"
。 或者,您实际上只需使用HTMLAnchorElement.Click方法即可发生点击: ieAnchor.Click
。