【问题标题】:How to access option from dropdown menu in VBA如何从 VBA 的下拉菜单中访问选项
【发布时间】:2019-11-08 17:20:41
【问题描述】:

我是 VBA 新手,我必须从特定网站的 Internet Explorer 页面之一的下拉菜单中选择选项 2。

这是网页的 html 代码的快照。

我想不出在 VBA 中访问下拉选项的方法。 我尝试使用它,但 ist 似乎没有针对我想要的元素。

Set objShell3 = CreateObject("Shell.Application")
              IE_count = objShell3.Windows.Count
              For x = 0 To (IE_count - 1)
            On Error Resume Next
            my_url = objShell3.Windows(x).document.Location
            my_title = objShell3.Windows(x).document.Title
             MsgBox ("The title of this page is: " & my_title)


         If my_title Like "Export to Excel" & "*" Then
        Set ie3 = objShell3.Windows(x).document
        my_title3 = ie3.Title
        MsgBox ("The title of Export to Excel is: " & my_title3)
        Exit For
    Else
End If

Next

      For Each element In ie3.getElementsByTagName("a")
  If element.innerText = "Option2" Then

    element.Click
      Exit For
        Else
    End If
Next

是否有任何特定的语法可以访问 vba 中下拉菜单的选项?

谢谢你:)

【问题讨论】:

  • 你可以通过edit分享url或使用sn-p工具粘贴html,以便我们可以复制粘贴进行测试
  • 从您的 HTML 代码图片看来,您尝试选择的是一个没有任何事件的 span 标签。如果您发布示例 HTML,我们可以尝试运行它并检查其结构。我们可以使用 VBA 代码进行测试,这可能有助于了解如何完成您的要求。

标签: html excel vba internet-explorer


【解决方案1】:

网址确实会有所帮助,但您要查找的内容必须在该选择标签元素中。

HTML 名称属性并不总是唯一的,但假设这是第一个具有此名称的属性,您可以通过以下方式将 select 元素设置为对象:

Set objSelect = ie3.getElementsByName("selectedHostId")(0)

如果你展开那个元素,你会看到它有带有选项标签的子元素。 选项标签有值,也有内部文本,它们并不总是相同的。您必须使用该值。

objSelect.Value = "ValeOfOptionElementYouNeed"

下拉菜单有一个 onChange 事件。您可能需要“触发”它以模仿手动选择:

objSelect.FireEvent "onChange"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2016-01-06
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多