【问题标题】:I can't select multiple items in dropdown list web VBA我无法在下拉列表 Web VBA 中选择多个项目
【发布时间】:2019-07-26 00:18:36
【问题描述】:

我正在尝试从 Intranet 页面填写表格。 我设法从我想选择但不是同时选择的下拉列表中突出显示元素。我想在列表中选择三个 这是我的代码:

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&amp;S'">A&amp;S</option>
<option value="'ABUS'">ABUS</option>
<option value="'ACS'">ACS</option>
<option value="'ANES'">ANES</option>
</select>

感谢您的帮助

科伦丁

【问题讨论】:

标签: html vba list web-scraping dropdown


【解决方案1】:

如果要按值使用,请使用属性 = 值 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

【讨论】:

    【解决方案2】:

    在这种情况下,您不需要更改Modality 的值,而是将选项设置为“已选择”:

    Modality.getElementsByTagname("option").item(0).selected = "selected"

    【讨论】:

    • 嗨,亚历克斯,再次感谢,它有效。但它有办法寻找价值本身,例如“'A&S'”,而不是计算哪个项目是什么?因为大约有一百个
    • 我认为您需要在选项标签中提供更多信息,例如名称或 ID。您可以控制 html 本身吗?否则,您可以遍历所有选项以检查 Value 属性或 InnerText 属性是否与您的值之一相同。
    • 好吧,我找到了一种方法来获取我拥有的项目的编号,将 HTML 代码复制粘贴到 excel 中 ^^ 感谢 Alex 的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多