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