使用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。 要做到这一点,你必须重构你的代码,以符合以下标准:

  1. 您必须使用“WithEvents”关键字来声明所述Anchorvariables以响应事件。
  2. 要使用“WithEvents”关键字,你必须在模块级声明你的Anchorvariables。
  3. 您还必须在模块内使用WithEvents关键字。
  4. 最后,您需要通过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