1

我的要求是我需要在 excel 中有一个 VBA 代码,当单击网页中的链接时,它会运行以在 excel 中执行一些操作。例如,当我单击网页中的“登录”链接时,我的 VBA 代码应该按下键盘上的 printscreen 按钮(就像我们使用 sendkeys 一样)。两周以来我一直在谷歌上寻找这个解决方案,但没有得到一个。这是紧急项目要求,请节省我的时间,非常感谢你。

4

2 回答 2

1

您无法在 Internet Explorer 中执行任何本地操作来启用此功能。

您需要编写一个 ActiveX 控件(使用 C#、C++、VB6 等)来执行 Excel 自动化。

一些有用的链接:

于 2012-10-25T14:12:36.160 回答
1

这是我对类似问题给出的答案的编辑版本(http://stackoverflow.com/questions/12877872/possible-to-intercept-onchange-event/12927960#12927960)。

为“Microsoft HTML 对象库”和“Microsoft Internet 控件”设置的项目引用

在类模块“clsEvents”中:

Option Explicit

Public WithEvents href As MSHTML.HTMLAnchorElement

'Note that having defined "href" as "WithEvents", if you choose "href"
'  from the left-hand dropdown at the top of the class code module
'  then the right-hand dropdown will populate with events you can select
'  from to create an event-handling procedure in the class

Private Function href_onclick() As Boolean
    Debug.Print "link clicked"
    href_onclick = False 'cancels the navigation
End Function

在常规模块中:

Option Explicit

Dim evt As clsEvents

Sub Setup()

    Dim IE As New InternetExplorer
    Dim el2 As Object

    Set evt = New clsEvents

    IE.Visible = True
    IE.navigate "http://www.csee.wvu.edu/~riggs/html/select_example.html"

    Do While IE.Busy
    Loop

    Set el2 = IE.document.getElementsByTagName("a")(1)

    If Not el2 Is Nothing Then
        Debug.Print "setting event capture on link:" & el2.innerText
        Set evt.href = el2
    End If

End Sub

如果您运行Setup子程序,然后在 IE 中单击页面上的“Javascript”链接,您应该会在 VB 编辑器的立即窗口中看到输出。

希望这有助于您入门。

于 2012-10-25T23:09:18.627 回答