Как перейти к уже открытому окну IE, используя VBA? - PullRequest
0 голосов
/ 14 марта 2019

Итак, я пытался перейти к уже открытому окну IE, используя VBA.Я нашел пост, объясняющий, что, кажется, как это сделать.Однако сейчас моя главная проблема в том, что я не слишком знаком с VBA и, в частности, у моего веб-сайта нет названия документа.Все, что у меня есть в HTML-коде, когда я проверяю его в отладчике, это следующее:

<title></title>

Я что-то здесь упускаю?Есть ли другой способ ссылки на веб-сайт, который может быть проще или проще?

Sub demo()

Dim str_val As Object
marker = 0
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
    On Error Resume Next
    my_url = objShell.Windows(x).document.Location
    my_title = objShell.Windows(x).document.Title

    If my_title Like "XYZ" & "*" Then
        Set IE = objShell.Windows(x)
        marker = 1
        Exit For
    Else
    End If
Next

If marker = 0 Then
 MsgBox ("A matching webpage was NOT found")

Else
    MsgBox ("A matching webpage was found")

    Set str_val = IE.document.getElementById("txtbox1")
    str_val.Value = "demo text"

End If
End Sub

Ссылка

Код VBA для взаимодействия с конкретным окном IE, которое ужеоткрыт

1 Ответ

0 голосов
/ 14 марта 2019

Так я обычно решаю эту проблему,

Sub GetURLs()

'   Uses MS HTML Controls
'   and MS Internet Controls

Dim s As SHDocVw.InternetExplorer
Dim sw As SHDocVw.ShellWindows
Dim d As MSHTML.HTMLDocument

Set sw = New SHDocVw.ShellWindows

For Each s In sw
    If TypeName(s) = "IWebBrowser2" And s.Name <> "Windows Explorer" Then
        Debug.Print s.Name, s.LocationURL
        Set d = s.Document
        Debug.Print d.getElementsByTagName("TD")(0).innerhtml
    End If
Next s

Set sw = Nothing
Set s = Nothing

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