我正在尝试编写vba代码来填写网络表单并为我单击按钮。我循环浏览页面上的各种option
标签以选择我想要的标签。当我到达它时,我想选择它,但我不确定语法。
Dim htmlO As HTMLOptionElement
For Each htmlO In Object.getElementByTagName("option")
If Trim(htmlO.value) = "INS" Then
htmlO.???? (click? select?)
Exit For
End If
Next
以下是网页上的HTML:
<select gtbfieldid="40" id="menu" name="pv_choice">
<option selected="selected" value="ZZZ">Choose Menu Option
</option><option value="BL_COMP">Blanket Companies
</option><option value="CARR_SEARCH">Carrier Search
</option><option value="PASSWORD">Change Password
</option><option value="FED_REG">FMCSA Register
</option><option value="FEEDBACK">Feedback
</option><option value="HOME">Home Page
</option><option value="INS">Insurance Filing
</option><option value="OOS_LIST">Out Of Service Carriers
</option></select>
我想选择“INS”选项。
答案 0 :(得分:2)
Dim StrFindText as string
Dim htmlSelect As HTMLSelectElement
Dim htmlItemOption As IHTMLOptionElement
Set htmlSelect = Object.getElementById("menu")
StrFindText = "INS"
For i = 0 To htmlSelect.options.length - 1
htmlItemOption = htmlSelect.options(i)
' UCase(htmlItemOption.text) = UCase(StrFindText) ' if find text options
If UCase(htmlItemOption.value) = UCase(StrFindText) Then
htmlItemOption.selected = True
Exit For
End If
Next i
答案 1 :(得分:1)
我没有使用VBA,所以我提前道歉但假设它使用与我熟悉的其他语言相同的DOM结构,请尝试:
htmlO.selected= "selected"
这是我在javascript中实现这一点的方法:)
HTH
答案 2 :(得分:1)
CSS选择器:
这是一种简单得多的方法。使用option[value='INS']
的CSS选择器。
这表示带有option
标签的select元素具有属性value
,其值为'INS'
。
CSS查询:
VBA:
通过document
的{{3}}方法应用CSS selector。
objdoc.querySelector("option[value='INS']").Click
或
objdoc.querySelector("option[value='INS']").Selected = True
答案 3 :(得分:0)
最终有效的是......
Dim htmlO As HTMLSelectElement
设置htmlS = objdoc.getElementById(“menu”)
htmlS.selectedIndex = 7
我必须参考整个菜单并选择要选择的菜单,而不是选择单个选项。