我试图从内部网页填写表单。我设法突出显示我想要选择的下拉列表中的元素,但不是同时。我想在列表中选择三个这是我的代码:
Sub GetLTRTable()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.application")
ie.Visible = True
ie.navigate "myurl"
Do Until ie.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
Dim Fields As Object
Set Fields = ie.Document.all.Item("ADFields")
Fields.Checked = True
Dim organization As Object
Set organization = ie.Document.all.Item("Org")
organization.selectedindex = 0
Dim Modality As Object
Set Modality = ie.Document.getElementsByName("Modality")(0)
With Modality.Value = "'GDXE'"
Modality.Value = "'ABUS'"
Modality.Value = "'A&S'"
End With
ie.Document.getElementsByName("Action").Item(1).Click
这是源代码(请注意,由于有很多模态,我刚刚提取了一个提取):
<select name="Modality" multiple="" size="4"><option value="'ALL'" selected="">ALL</option>
<option value="'A&S'">A&S</option>
<option value="'ABUS'">ABUS</option>
<option value="'ACS'">ACS</option>
<option value="'ANES'">ANES</option>
</select>
谢谢您的帮助
Corentin
如果要按值使用,请使用attribute = value css选择器
With ie.document
.querySelector("[value='ABUS']").Selected = True
.querySelector("[value='GDXE']").Selected = True
End With
这应该证明是一种快速选择器方法。
另外,使用正确的页面等待:
While ie.Busy Or ie.readyState < 4: DoEvents: Wend
在这种情况下,您无需更改Modality
的值,但将选项设置为“selected”:
Modality.getElementsByTagname("option").item(0).selected = "selected"