我是VBA的新手,希望这里有人可以帮我解决以下问题:
我想使用VBA打开一个网站,然后点击这个网站上的两个不同的按钮。
我的挑战是:
1)如何告诉代码等到网页完全加载,以便确保我想要点击的按钮实际可见?
2)如何使用它的唯一ID正确处理按钮?
到目前为止我的代码:
Dim varResults As New DataObject
Dim varButtonID As String
Dim i As Long
Dim objIE As Object
Dim objElement As Object
Dim objCollection As Object
varResults.SetText TxtSql.Text
varResults.PutInClipboard
' assign button ID
varButtonID = "Oracle_setExplainOptionsSpan"
' create IE object
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.navigate "https://myURL"
.Visible = True
End With
While objIE.ReadyState <> 4: Wend
objIE.document.getElementById(varButtonID).Click
非常感谢您提供任何帮助, 麦克
答案 0 :(得分:0)
您可以尝试按类名查找按钮以单击按钮。
With ie.document
Set elements = .getelementsbytagname("input")
For Each e In elements
If (e.getattribute("className") = "btnComment") Then
e.Click
Exit For
End If
Next e
End With
我想不到VBA命令在页面加载之前等待,但是你可以输入一个等待固定时间的等待语句。
Application.Wait(Now + #0:00:01#)
答案 1 :(得分:0)
我总是使用Do While循环等待页面加载后再继续。
Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop