В настоящее время я работаю над проектом VBA, который выполняет серию команд JavaScipt с объектом IE и должен получить переменную, объявленную с помощью указанных команд. Сценарии работают нормально, но я не знаю, как получить эту переменную. Вот мой код:
Sub test(URL As String)
Dim i As Long
Dim URLs As String
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
Dim aux As String
'Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
'Set IE.Visible = True to make IE visible, or False for IE to run in the background
IE.Visible = True
'Define URL
URLs = "https://confidential.com"
'Navigate to URL
IE.Navigate URLs
' Statusbar let's user know website is loading
Application.StatusBar = URLs & " is loading. Please wait..."
' Wait while IE loading...
'IE ReadyState = 4 signifies the webpage has loaded (the first loop is set to avoid inadvertently skipping over the second loop)
Do While IE.ReadyState = 4: DoEvents: Loop 'Do While
Do Until IE.ReadyState = 4: DoEvents: Loop 'Do Until
Call IE.document.parentWindow.execScript("var request = new XMLHttpRequest()")
Call IE.document.parentWindow.execScript("request.open('GET','" & URL & "', true);")
Call IE.document.parentWindow.execScript("request.send();")
Call IE.document.parentWindow.execScript("var jsvar = request.response")
aux = IE.document.Script.jsvar
'Webpage Loaded
Application.StatusBar = URLs & " Loaded"
'Unload IE
Set IE = Nothing
Set objElement = Nothing
Set objCollection = Nothing
End Sub
Часть .Script.jsvar, которую я получил из другого поста в SO, но она, похоже, не работает, так как я получаю ошибку «Неверный тип объекта».
Я также открыт для идеи использовать другой подход к получению необходимой мне информации.