从Web列表框中获取元素列表

时间:2017-04-24 14:54:46

标签: excel-vba listbox vba excel

我正在尝试计算网页上列表框中的所有元素(最终循环遍历它们,但解决此问题将有助于循环):

enter image description here

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

2 个答案:

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