使用VBA单击IE中的按钮

时间:2017-06-09 14:12:24

标签: excel vba excel-vba ie-automation

我正在使用Excel VBA尝试点击网站上的按钮,这里是使用inspect元素的网站代码:

<button class="_ah57t _84y62 _frcv2 _rmr7s">ClickHere</button>

这就是我在VBA中所做的事情:

Sub testcode()
Dim ie As InternetExplorer
Dim html As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "somesite.com"

Do While ie.READYSTATE <> READYSTATE_COMPLETE
DoEvents
Loop

Dim e
Set e = ie.Document.getElementsByClassName("_ah57t _84y62 _frcv2 _rmr7s")
e.Click

End Sub

使用调试我发现代码似乎存储了一些名为&#34; [object]&#34;在变量e中然后给出一个运行时错误&#39;&#39;&#39;什么时候去e.click。我甚至尝试过使用.Focus,但是得到了同样的错误。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

getElementsByClassName()函数返回的集合不是单个元素。您需要在返回的集合上指定索引才能返回单个元素。如果班级中只有一个元素,您只需使用:

ie.Document.getElementsByClassName("_ah57t _84y62 _frcv2 _rmr7s")(0).Click

(0)指定从类返回的集合中元素的索引。

很容易判断函数是返回集合还是单个元素:

  • getElementBy... - 返回单个元素。
  • getElementsBy... - 返回元素集合。