我可以成功获得所有游戏'但是不能使用for循环获取游戏细节。我总是得到这个错误
object doesn't support this property or method
在这一行
Debug.Print game.getElementsByClassName("date").innerText
以下是我的代码,
Dim doc As HTMLDocument
Set doc = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://foo.bar"
.send
Do: DoEvents: Loop Until .readyState = 4
doc.body.innerHTML = .responseText
.abort
End With
Set games = doc.getElementsByClassName("match")
For Each game In games
Debug.Print game.getElementsByClassName("date").innerText
Next game
答案 0 :(得分:1)
getElementsByClassName method是一个集合。如果要引用集合中的单个项目,则必须提供的最小值是基于零的索引的整数。
Debug.Print game.getElementsByClassName("date")(0).innerText
这将在游戏元素(它是集合本身的一部分)中显示第一个带有 date 类的元素。
或者,循环使用它们。
for el = 0 to game.getElementsByClassName("date").length - 1
Debug.Print game.getElementsByClassName("date")(el).innerText
next el
.Length 是一个基于一的计数,因此您需要减去 1 以匹配从零开始的索引。