VBA / IE:如何使用VBA单击网站上的按钮

时间:2017-02-02 10:41:02

标签: vba internet-explorer click internet-explorer-10

我是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

非常感谢您提供任何帮助, 麦克

2 个答案:

答案 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