Я провел приличную часть поисков в Интернете, чтобы найти ответ на мой вопрос, хотя это было напрасно. Я довольно плохо знаком с VBA Webscraping, поэтому я прошу прощения, если мой вопрос довольно прост. При этом, позвольте мне объяснить:
В настоящее время я пытаюсь скопировать информацию с внутреннего веб-сайта моей компании. Используя идентификаторы HTML и имена классов, я смог сослаться на нужную строку поиска. Хотя, как только скрипт нажимает кнопку поиска на веб-странице, открывается новая вкладка. После этого остальная часть моего сценария продолжает ссылаться на исходную вкладку, а не на новую вкладку, из которой извлекается нужная мне информация.
Я пытался использовать innerText, чтобы посмотреть, смогу ли я получить URL-адрес непосредственно из HTML, хотя, похоже, он не находится в HTML. Кроме того, я не могу создать другое «то есть», чтобы указать новый URL-адрес, поскольку URL-адрес новой вкладки является динамическим и основан на результатах поиска. Поэтому единственная возможность, которую я оставил, это переключение вкладок, и я не смог найти никакой информации о том, как это сделать.
Если кто-нибудь сможет решить эту дилемму, я знаю, что это будут кодирующие боги StackOverflow.
Option Explicit
Sub Atlas_Search()
Dim SearchString As String
SearchString = Range("A1")
Dim ie As Object
Dim ie2 As Object
Dim form As Object
Dim form2 As Object
Dim form3 As Object
Dim button As Variant
Dim var1 As Object
Set ie = New InternetExplorerMedium
With ie
ie.Visible = True
ie.Navigate
"www.google.com"
With CreateObject("Shell.Application").Windows
Set ie = .Item(.Count - 1)
End With
End With
ie.document.getelementsbytagname("input")(10).Value = SearchString
Set form = ie.document.getelementbyid("MainContent_btnSearchFullText")
form.Click
Set form2 =
ie.document.getelementbyid("MainContent_rptrSearchResults_lnkApplicationid_0")
form2.Click
Set form3 = ie2.document.getelementsbyclassname("nav2link")(9)
form3.Click
End Sub