Может быть два пути. Во-первых, вы можете установить необходимые параметры в URL-адресе. Тогда вам не нужен шаг, который вы хотите сделать здесь. Это решение работает, если страница использует Get
для связи с сервером. Если он использует Post
, вы должны выполнить требуемый шаг.
Вы можете проверить, работает ли он с помощью параметров URL, выполнив все необходимые шаги вручную. После этого посмотрите URL-адрес, который вы найдете в браузере. Если есть список параметров, он начинается с вопросительного знака (?). Все следующие параметры начинаются с амперсанда (&).
Если вы должны сделать это с помощью кода, попробуйте следующее:
Sub SelectFromDropdown()
Dim url As String
Dim browser As Object
Dim nodeSelect As Object
url = "Your url here"
'Initialize Internet Explorer, set visibility,
'call URL and wait until page is fully loaded
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'Get the dropdown and select the wanted entry by index
'Indexes beginn with 0
'(Code lines from your question)
Set nodeSelect = browser.document.getElementsByName("fin")(0)
nodeSelect.selectedIndex = 1
'It is likely that the change to the page must be communicated
'via an HTML event. This is probably the change event
'FireEvent doesn't work on most pages
Call TriggerEvent(browser.document, nodeSelect, "change")
End Sub
Эта процедура для запуска события html:
Private Sub TriggerEvent(htmlDocument As Object, htmlElementWithEvent As Object, eventType As String)
Dim theEvent As Object
htmlElementWithEvent.Focus
Set theEvent = htmlDocument.createEvent("HTMLEvents")
theEvent.initEvent eventType, True, False
htmlElementWithEvent.dispatchEvent theEvent
End Sub