使用VBA自动处理Internet Explorer时,可以按组件值选择组合框中的项目。如果我们的组合框HTML
看起来像这样:
<select name="my_combo_box" id="fruits">
<option value="1">Apple</option>
<option value="2">Banana</option>
<option value="3">Strawberry</option>
</select>
然后您可以使用VBA选择“Banana”选项,如下所示:
getElementById("fruits").value = 2
但是有没有办法用它的名字(显示成员)选择它,即 Banana ?
答案 0 :(得分:1)
&#34;香蕉&#34;不是HTML属性,而是标记之间的文本。 您可以遍历所有元素并使用选项标记,然后选择具有所需innerText的元素。在下一步中,您可以从innerHTML中删除id。喜欢:
Sub MyMacro()
Dim opt As IHTMLElement
Dim iComboBox As IHTMLElement
Dim sID As String
For Each opt In iComboBox.getElementsByTagName("option")
If InStr(opt.innerHTML, "Banana") Then
sID = CutId(opt.innerHTML)
End If
Next opt
End Sub
Function CutId(s As String) As String
Dim s As String
s = Mid(s, InStr(s, "=") + 2, 1)
CutId = s
End Function
然后您可以使用sId来选择项目。我想你的HTML只是示例,所以你可能需要调整CutId函数,这只是我的求解方案。特别是,如果您希望id有两位数,您将调整我的代码。