如何使用VBA Excel Internet Explorer按第二个按钮

时间:2015-04-20 22:08:13

标签: excel vba internet-explorer

我正在尝试按下ID为“运行报告”的按钮,问题是有两个具有相同ID的按钮,我想按第二个按钮。

Set tags = ie.Document.GetElementsByTagname("input") 
For Each tagx 
In tags If tagx.Value = "Run report" 
Then tagx.Click 
End If 
Next

这适用于第一个按钮但无法找到按第二个按钮的方法。有人有任何提示吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

听起来很奇怪两个按钮具有相同的id,网页开发人员倾向于使用此属性的唯一信息,因为它通常是CSS和JavaScript的参考...你确定你的意思不一样{ {1}}?无论如何,你总是可以通过在代码中添加一个控制变量来控制这样的问题,该变量告诉你它是第一次还是第二次:

Value

我使用了Set tags = ie.Document.GetElementsByTagname("input") meetFirst = False '<-- we didn't meet any first button with id = "myID" yet For Each tagx In tags If tagx.id = "myID" If meetFirst = False Then meetFirst = True '<-- we met the first button Else '<-- if we get here, we are dealing with the second "myID" button tagx.Click Exit For '<-- we can end the loop End If End If Next 的示例,坚持你的句子按钮具有相同的ID,我想按第二个。您可以更改属性以进行检查(tagx.id.Value等等)

答案 1 :(得分:0)

ie.document.querySelectorAll("#run-report")(1).Click

querySelectorAll方法可以检索ID为nodeList的所有元素中的run-report。您可以为特定元素建立索引。

有时语法略有不同:

ie.document.querySelectorAll("#run-report").Item(1).Click