Excel通过VBA响应web DOM事件
我试图对通过Excel VBA打开的网站上的按钮单击作出响应 下面的代码试图让它作为Duckduckgo的测试工作 网页加载良好,但我似乎无法获得onclick事件,我需要这样做才能从用户将要填写的文本输入元素中获取值Excel通过VBA响应web DOM事件,excel,vba,internet-explorer,Excel,Vba,Internet Explorer,我试图对通过Excel VBA打开的网站上的按钮单击作出响应 下面的代码试图让它作为Duckduckgo的测试工作 网页加载良好,但我似乎无法获得onclick事件,我需要这样做才能从用户将要填写的文本输入元素中获取值 选项显式 私有WithEvents IEButton作为MSHTML.HTMLInputButtonElement Public Sub Init(以MSHTML.htmlInputButtonneElement的形式命名) 设置IEButton=aButton 端接头 私有函数
选项显式
私有WithEvents IEButton作为MSHTML.HTMLInputButtonElement
Public Sub Init(以MSHTML.htmlInputButtonneElement的形式命名)
设置IEButton=aButton
端接头
私有函数IEButton_onclick()作为布尔值
调试。打印“单击”
MsgBox“你好”
端函数
Private Sub cmdTest\u Click()
Dim ie作为InternetExplorer,html作为HTMLDocument
将链接设置为字符串
链接=”http://www.duckduckgo.com/"
Set ie=新的InternetExplorer
与ie
.Visible=True
.导航链接
While.Busy=True或.readyState<4
多芬特
温德
设置html=.document
调暗IEB,但作为新的CLSIE按钮
ieBut.Init html.querySelector(“搜索按钮”主页)
以
显示窗口ie.hwnd,SW_显示最大化
端接头
试试这个部分
Set html = .document
html.queryselector("#search_form_input_homepage").Value = "Excel VBA"
html.queryselector("#search_button_homepage").Click
在Cick的操作之前放置以下行
Range("A1").value = html.queryselector("#search_form_input_homepage").Value
试试这一部分
Set html = .document
html.queryselector("#search_form_input_homepage").Value = "Excel VBA"
html.queryselector("#search_button_homepage").Click
在Cick的操作之前放置以下行
Range("A1").value = html.queryselector("#search_form_input_homepage").Value
cmdTest\u单击
完成后,其所有局部变量都将被销毁,包括ieBut
。
如果你需要它一直挂到有人点击按钮,你需要移动它
Dim ieBut As New clsIEButton
位于模块顶部,任何子/功能之外
这里有类似的代码:一旦
cmdTest\u单击
完成,其所有局部变量都将被销毁,包括ieBut
。
如果你需要它一直挂到有人点击按钮,你需要移动它
Dim ieBut As New clsIEButton
位于模块顶部,任何子/功能之外
类似代码如下:
该网页加载良好,但我似乎无法获得再次点击
事件,我需要这样做才能从文本输入中获取值
用户将要填写的元素
请参考以下示例代码:
Private ieBut As clsIEButton 'global variable.
Private Sub cmdTest_Click()
Dim ie As InternetExplorer, html As HTMLDocument
Dim link As String
link = "http://www.duckduckgo.com/"
Set ie = New InternetExplorer
With ie
.Visible = True
.navigate link
While .Busy = True Or .readyState < 4
DoEvents
Wend
Set html = .document
Set ieBut = New clsIEButton
'transfer the button element and the html document.
ieBut.Init html.getElementById("search_button_homepage"), html
End With
End Sub
输入值并单击搜索按钮后,VBA输出如下所示:
该网页加载良好,但我似乎无法获得再次点击
事件,我需要这样做才能从文本输入中获取值
用户将要填写的元素
请参考以下示例代码:
Private ieBut As clsIEButton 'global variable.
Private Sub cmdTest_Click()
Dim ie As InternetExplorer, html As HTMLDocument
Dim link As String
link = "http://www.duckduckgo.com/"
Set ie = New InternetExplorer
With ie
.Visible = True
.navigate link
While .Busy = True Or .readyState < 4
DoEvents
Wend
Set html = .document
Set ieBut = New clsIEButton
'transfer the button element and the html document.
ieBut.Init html.getElementById("search_button_homepage"), html
End With
End Sub
输入值并单击搜索按钮后,VBA输出如下所示:
感谢您的回复。我想知道什么时候点击了按钮,这样我就可以检查用户在文本输入中输入的值。用户将如何使用代码。?他是否会使用InputBox在文本输入中键入值?用户将单击excel文档上的按钮,该按钮将加载网页,用户将在网页上完成web表单,然后单击提交按钮。这将向第三方发送POST REQUEST,但我还希望捕获用户输入的值,并在Excel中填充一些单元格。感谢您的回复。我想知道什么时候点击了按钮,这样我就可以检查用户在文本输入中输入的值。用户将如何使用代码。?他是否会使用InputBox在文本输入中键入值?用户将单击excel文档上的按钮,该按钮将加载网页,用户将在网页上完成web表单,然后单击提交按钮。这将向第三方发送POST REQUEST,但我还希望捕获用户输入的值,并在Excel中填充一些单元格。太好了,我终于开始进步了!现在,我从类中的“Set IEButton=aButton”行得到一个错误462“远程服务器计算机不存在或不可用”。你能帮个忙吗?而且,它似乎超越了默认行为,有没有办法停止过度驾驶?太好了,我终于进步了!现在,我从类中的“Set IEButton=aButton”行得到一个错误462“远程服务器计算机不存在或不可用”。你能帮忙吗?还有,它似乎超越了默认的行为,有没有办法停止过度驾驶?