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