2017-04-24 84 views
0

我想指望在一个列表框中的所有元素在网页上(最终通过他们循环,但解决这个问题将有助于循环):获取的元素列表,从列表框中网站

enter image description here

林VBA相当新颖,但我确实相信这是一个列表框对象,因为在这个对象的萤火虫名称末尾有“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

也许你可以通过他们循环与i = 1到webList.listcount? –

+0

我一定不清楚 - .ListCount导致438错误。 – Pavel

回答

0

帮助比我想象的更接近。 原来ListBox中是不是真正的列表框,它是在服务器端生成的列表框与其他一些HTML元素(只是想重复我被告知):

<select size="4" name="xyz" multiple="multiple" id="xxx_accountItemsListBox" class="accountItemsListBox"> 

所以.ListCount wasnt认可。相反,我不得不使用.Length和

msgbox(listMPAN.Length) 

完美地工作。现在循环它应该很简单。 谢谢。

+0

好!是的,它不是HTML中的列表框,通常是select元素。 –

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