Excel 使用vba从internet explorer的下拉框中选择项目

Excel 使用vba从internet explorer的下拉框中选择项目,excel,vba,internet-explorer,Excel,Vba,Internet Explorer,以下值表示网站上的组合框/组合列表。我正在尝试使用VBA从下拉列表中选择项目3。我试过好几种方法,但我没有幸运地选择了上述项目。我试着在Google和Stack上寻找解决方案,但没有找到任何有效的方法 <DIV id=ext-gen256 class="x-layer x-combo-list x-combo-list-small" style="FONT-SIZE: 10px; HEIGHT: 92px; WIDTH: 113px; POSITION: absolute; LEFT:

以下值表示网站上的组合框/组合列表。我正在尝试使用VBA从下拉列表中选择项目3。我试过好几种方法,但我没有幸运地选择了上述项目。我试着在Google和Stack上寻找解决方案,但没有找到任何有效的方法

<DIV id=ext-gen256 class="x-layer x-combo-list x-combo-list-small"  style="FONT-SIZE: 10px; HEIGHT: 92px; WIDTH: 113px; POSITION: absolute; LEFT: 744px;       Z-INDEX: 12007; TOP: 235px; VISIBILITY: visible">

<DIV id=ext-gen257 class=x-combo-list-inner style="HEIGHT: 90px; WIDTH: 111px">

<DIV class="x-combo-list-item" _nodup="30829" viewIndex="0">Select</DIV>
<DIV class="x-combo-list-item" _nodup="30829" viewIndex="1">Item 1</DIV>
<DIV class="x-combo-list-item" _nodup="30829" viewIndex="2">Item 2</DIV>
<DIV class=""x-combo-list-item" _nodup="30829" viewIndex="3">Item 3</DIV>
<DIV class="x-combo-list-item" _nodup="30829" viewIndex="4">Item 4</DIV></DIV></DIV>

这似乎不起作用。非常感谢您的帮助。几天来,我一直在努力想办法解决这个问题。

所以我想办法解决这个问题。这是多么痛苦啊,哈哈

Dim el As MSHTML.HTMLHtmlElement, els

Set els = IE.document.getElementsByClassName("x-combo-list-item")

For each el in els

    If el.innerText = "Item 3" Then
        Debug.Print el.innerText
        el.click
        Exit For
    End If

Next el
Dim inputElement0 As MSHTML.HTMLButtonElement
Set inputElement0 = IE.document.getElementById("ext-gen255")

    If inputElement0.HasChildNodes = True Then
    MsgBox True
    Else
    MsgBox False
    End If
这有助于我确定哪些元素有子元素,正如我计算的对象名称所示,这些子元素可以构成下拉列表中的子项

inputElement0.FirstChild.NextSibling.NextSibling.click

还有维奥拉!项目3已选定。谢谢大家的帮助p

输入是项的集合,而不是单个项。您需要循环使用可用于每个元素的集合并检查每个元素的innerText:当找到匹配项时,然后运行元素的Click事件。我相信我以前尝试过这种方法几次。你介意举个例子吗?我可能弄错了语法:/it似乎不起作用:描述发生了什么:错误消息?在哪一行?我尝试了这一点,并收到运行时438错误对象不支持此属性或方法行:set els=…:/我很难提出任何建议,没有一些方法让我测试。
inputElement0.FirstChild.NextSibling.NextSibling.click