Как получить доступ к опции из выпадающего меню в VBA - PullRequest
0 голосов
/ 26 июня 2019

Я новичок в VBA, и мне нужно выбрать вариант 2 из выпадающего меню на одной из страниц Internet Explorer определенного веб-сайта.

Вот снимок HTML-кода веб-страницы. enter image description here

Я не могу найти способ доступа к опции раскрывающегося списка в VBA. Я пытался использовать это, но, похоже, не подходит для элемента, который я хочу.

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 голосов
/ 26 июня 2019

URL действительно будет полезен, но то, что вы ищете, должно быть в этом элементе тега select.

Атрибуты имени HTML не всегда уникальны, но при условии, что это первое имя с таким именем, вы можете установить элемент select в объект следующим образом:

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

Если вы развернете этот элемент, вы увидите, что у него есть дочерние элементы с тегом option. Теги параметров имеют значение, а также внутренний текст, которые не всегда одинаковы. Вы должны использовать значение.

objSelect.Value = "ValeOfOptionElementYouNeed"

В выпадающем списке есть событие onChange. Возможно, вам придется «запустить» его, чтобы имитировать ручной выбор:

objSelect.FireEvent "onChange"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...