我正在尝试计算网页上列表框中的所有元素(最终循环遍历它们,但解决此问题将有助于循环):
我对VBA很新,但我相信这是一个列表框对象,因为在这个对象的firebug名称末尾有“listbox”。
我在这里或其他地方找到的所有建议都与.ListCount或.ListIndex相关 不知何故,其中任何一个都会导致错误438,对象不受支持。
下面的一段代码。 你能建议吗?
With IE.document
.getElementById("xxx_startDay").Value = "1"
.getElementById("xxx_startMonth").Value = "JAN"
.getElementById("xxx_startYear").Value = "2017"
.getElementById("xxx_endDay").Value = "31"
.getElementById("xxx_endMonth").Value = "JAN"
.getElementById("xxx_endYear").Value = "2017"
'IE.document.getElementById("xxx_accountItemsListBox").Focus
Set listMPAN = IE.document.getElementById("xxx_accountItemsListBox")
listMPAN.selectedIndex = 5
MsgBox (listMPAN.ListCount)
End With
答案 0 :(得分:0)
帮助比我想象的更接近。 原来列表框不是真正的列表框,它是一些其他html元素与服务器端生成的列表框(只是试图重复我被告知):
<select size="4" name="xyz" multiple="multiple" id="xxx_accountItemsListBox" class="accountItemsListBox">
所以.ListCount没有被识别出来。相反,我不得不使用.Length和
msgbox(listMPAN.Length)
工作得很好。现在循环它应该很简单。 谢谢。
答案 1 :(得分:0)
这是我的另一个答案:
On Error GoTo endCount
For i = 0 To 100
Debug.Print myDoc2.getElementById("quoteDropdown").Item(i).Value
Next i
endCount:
On Error GoTo 0
If i <> 0 Then
Debug.Print "there are " & i & " options."
End If