如何从VBA的下拉菜单访问选项

时间:2019-06-26 17:32:23

标签: html excel vba internet-explorer

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

这是网页html代码的快照。 enter image description here

我无法找到一种在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中的下拉菜单选项?

谢谢:)

1 个答案:

答案 0 :(得分:0)

URL确实会有所帮助,但是您要查找的内容必须在选择标记元素中。

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

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

如果扩展该元素,您将看到它具有带有选项标签的子元素。 选项标签具有值和内部文本,它们并不总是相同的。您必须使用该值。

objSelect.Value = "ValeOfOptionElementYouNeed"

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

objSelect.FireEvent "onChange"