Excel 使用vba单击网页上的按钮
我试图让一个代码正常工作,但我无法让它单击一个sumbit按钮,因为web的id没有该按钮,下面是我试图单击的html行,如何通过vba代码单击该按钮Excel 使用vba单击网页上的按钮,excel,vba,Excel,Vba,我试图让一个代码正常工作,但我无法让它单击一个sumbit按钮,因为web的id没有该按钮,下面是我试图单击的html行,如何通过vba代码单击该按钮 <button type="submit" class="btn btn-default" value="Login" name="action">Submit</button> 提交 您需要一个“Microsoft Internet控件”的参考,该控件实际上是从VBA控制Internet Explorer。如果你
<button type="submit" class="btn btn-default" value="Login"
name="action">Submit</button>
提交
您需要一个“Microsoft Internet控件”的参考,该控件实际上是从VBA控制Internet Explorer。如果你能给我网址,我可以提供更具体的帮助,但如果这不能为你解决问题,这应该会让你开始:
Public Sub ButtonClicker()
Dim IE As InternetExplorer
Dim website_address As String: website_address = "YOUR ADDRESS GOES HERE"
Dim button_name As String: button_name = "action"
Dim button_class As String: button_class = "btn btn-default"
Dim open_in_IE As Boolean: open_in_IE = False 'Change to True if you want to see it in action
Dim button_collection As Object
Dim button As Object
On Error GoTo error_handler
If IE Is Nothing Then Set IE = New InternetExplorer
With IE
.Navigate website_address
Do While .Busy
DoEvents
Loop
Do While .ReadyState <> 4
DoEvents
Loop
.Visible = open_in_IE
End With
Set button_collection = IE.Document.getElementsByName(button_name)
Set button = button_collection(button_class) 'Inspect Locals here to see what comes through
button.Click
Set button = Nothing
Set button_collection = Nothing
IE.Quit
Set IE = Nothing
Exit Sub
error_handler:
Debug.Print "IE Error: " & Err.Number & " - " & Err.Description
If Not (IE Is Nothing) Then
IE.Quit
Set IE = Nothing
End If
End Sub
Public子按钮链接器()
Dim IE作为InternetExplorer
Dim website\u address作为字符串:website\u address=“您的地址在此处”
Dim button\u name作为字符串:button\u name=“action”
尺寸按钮\u类为字符串:按钮\u类=“btn btn默认”
Dim open_in_IE As Boolean:open_in_IE=False“如果您想看到它的运行,请将其更改为True”
Dim button_集合作为对象
将按钮变暗作为对象
关于错误转到错误处理程序
如果IE为空,则设置IE=newInternetExplorer
与IE
.浏览网站地址
忙着干吧
多芬特
环
请稍等。ReadyState 4
多芬特
环
.Visible=打开(即
以
设置按钮集合=IE.Document.getElementsByName(按钮名称)
Set button=button_集合(button_类)'在此处检查局部变量,以查看结果
按钮,点击
设置按钮=无
设置按钮\u集合=无
即退出
设置IE=无
出口接头
错误\u处理程序:
调试。打印“IE错误:&Err.Number&“-”&Err.Description
如果没有,那么
即退出
设置IE=无
如果结束
端接头
您尝试过什么?请共享您的代码并解释您的问题所在。这将失败(我认为),因为您正在将一个字符串传递到集合的索引中(该字符串不能隐式转换),您还可以将两个Do While循环合并为一个,并将方法升级到.Navigate2。您也不需要将对象设置为Nothing,因为它们在子对象末尾超出范围时将取消引用。请参阅此链接: