我是VBA的新手,我必须从特定网站的Internet Explorer页面之一的下拉菜单中选择选项2。
我无法找到一种在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中的下拉菜单选项?
谢谢:)
答案 0 :(得分:0)
URL确实会有所帮助,但是您要查找的内容必须在选择标记元素中。
HTML名称属性并不总是唯一的,但是假设这是第一个使用此名称的属性,您可以通过以下方式将select元素设置为对象:
Set objSelect = ie3.getElementsByName("selectedHostId")(0)
如果扩展该元素,您将看到它具有带有选项标签的子元素。 选项标签具有值和内部文本,它们并不总是相同的。您必须使用该值。
objSelect.Value = "ValeOfOptionElementYouNeed"
该下拉菜单包含一个onChange事件。您可能需要“触发”它以模仿手动选择:
objSelect.FireEvent "onChange"