单击按钮或使用VBA执行JavaScript功能

Mic*_*ael 3 javascript excel vba excel-vba

我正在尝试让我的VBA例程与使用JavaScript的页面进行交互,并且过去已经成功.最近更新后,它不再有效.此时我需要A)以编程方式单击按钮或B)执行按钮调用的功能.棘手的部分是按钮没有声明的名称.在源代码中声明的工作表上还有其他名称,我可以很好地与它们进行交互.这是页面源代码中的html代码:

<input type="button" class="buttonForm" value='Run Report' onclick="exportData(workOrderSearchForm)"/>
Run Code Online (Sandbox Code Playgroud)

如您所见,它没有声明按钮的名称.在过去,以下工作:

Set ie = CreateObject("InternetExplorer.application")
ie.document.all(79).Click
Run Code Online (Sandbox Code Playgroud)

"79"是项目编号的索引.现在看来该按钮已更改为项目"81",但只是放入:

ie.document.all(81).Click
Run Code Online (Sandbox Code Playgroud)

由于某种原因不起作用.我知道我想要执行的函数:exportData(workOrderSearchForm),但不知道如何在使用"click"方法之外执行此操作.

我已经找了一些关于IE应用程序对象的体面文档,但似乎无法找到一个好的来源.有没有办法执行该功能?

小智 11

试试这个:

Dim CurrentWindow As HTMLWindowProxy: Set CurrentWindow = ie.Document.parentWindow
Call CurrentWindow.execScript("exportData(workOrderSearchForm)")
Run Code Online (Sandbox Code Playgroud)

但首先,您需要在参考(工具>参考)下包含Microsoft HTML对象库