Как ни странно, я не нашел никакой информации по этой теме, и я сейчас застрял в точке, где мне удалось открыть новую вкладку в экземпляре IE, программным образом нажав кнопку, но Я не имею ни малейшего понятия, как обращаться к новой вкладке, чтобы получить информацию оттуда (кнопка в основном открывает новую вкладку с результатом поиска).VBA - Адресация вкладок Internet Explorer
В основном это простой вопрос, но я в том числе мой код все равно:
Sub AddInfoFromIntranet()
Dim Ie As SHDocVw.InternetExplorer
Dim URL As String
Dim iFrames As MSHTML.IHTMLElementCollection
Dim iFrame As MSHTML.HTMLFrameElement
Dim Doc As MSHTML.HTMLDocument
Dim InputBox As MSHTML.IHTMLElementCollection, htmlButton, allTags, Tag
' Opens Intranet - yeah, sadly it's not a public web page
URL = "{My intranet website}"
Set Ie = New SHDocVw.InternetExplorer
With Ie
.navigate URL
.Visible = True
While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend
Set Doc = .document
End With
' Gets top_window frame and navigates to it, then inserts the name to search
Set iFrames = Doc.getElementsByName("top_window")
If Not iFrames Is Nothing Then
Set iFrame = iFrames(0)
Ie.navigate URL & iFrame.src
While Ie.Busy Or Ie.readyState <> READYSTATE_COMPLETE: DoEvents: Wend
Set InputBox = Doc.getElementsByName("Nachnamevalue")
If Not InputBox Is Nothing Then InputBox(0).Value = "test"
' Clicks on "search"
Set allTags = Doc.getElementsByTagName("input")
For Each Tag In allTags
If Tag.Value = "suchen" Then
Tag.Click
Exit For
End If
Next
' Here a new tab is opened, must find info in this tab
While Ie.Busy Or Ie.readyState <> READYSTATE_COMPLETE: DoEvents: Wend
' HERE I HAVE NO CLUE WHAT TO WRITE. THE CODE ABOVE WORKS FLAWLESSLY
End If
Set Doc = Nothing
Set iFrames = Nothing
Set iFrame = Nothing
Set InputBox = Nothing
Set allTags = Nothing
Set Ie = Nothing
Ie.Quit
End Sub
Теперь есть способ обратиться вкладками: 1) его имя (и где я могу найти его) 2) его положение в браузере 3) статус (если он «активен»)?
Бонусные вопросы: поскольку я новичок в взаимодействии с VBA и Internet Explorer, что именно представляют собой переменные: htmlButton, allTags, Tag
? Кроме того, может ли кто-нибудь объяснить, нужно ли мне устанавливать все переменные в конце ни к чему, или мне просто нужно настроить Internet Explorer на ничего?
Заранее благодарен!
Я дважды проверил мой адрес (который справа), но присваивание Surl возвращает всегда «Ничто» ... не кажется мне, что снаряды работают правильно, так как 2 вкладки в экземпляре IE открыты и назначение выполняется 2 раза. Я изменил на 'sURL = o.LocationURL' и, похоже, работает. Это нормально? (Я не знаю, как работать с IE). – Noldor130884
Если это работает для вас, тогда это кажется прекрасным. У меня нет доступа к ПК в течение следующих нескольких дней для тестирования. –
Я бы попросил вас протестировать его и дать мне мнение о редактировании, которое я предложил («правильно ли» с точки зрения программиста? Почему ваш Sub дал мне «Nothing»?). Когда вы это сделаете, я с радостью буду отмечать ваш ответ как правильный. – Noldor130884