Использование браузера IE с Visual Basic

Пытаюсь найти решение этой проблемы. Из Visual Basic (точнее, VBA в Excel) я могу вызвать окно Internet Explorer по заголовку, используя

AppActivate ("My Page Title - Windows Internet Explorer")

И каждый раз это прекрасно работает.

Я могу открыть новое окно и отправить в него URL, используя ..

Dim ie As Object
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "http://websiteurl"

И это тоже работает нормально. Но он каждый раз открывает новый браузер, и я хочу, чтобы он всегда вызывал одно и то же окно.

Итак, могу ли я установить ie равным одной и той же странице каждый раз. Так что вместо

Set ie = New InternetExplorer

Это что-то вроде

Set ie = ACTIVE InternetExplorer

(хотя, похоже, этого не существует). Есть ли способ сделать ie таким же, как AppActivate ("My Page Title - Internet Explorer")?

Спасибо

Полный код здесь:

Sub Find_Recordings()
Dim MyAppID, ReturnValue

AppActivate ("My Page Title - Windows Internet Explorer")

SendKeys ("^a")
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys ("^c")
Application.Wait (Now + TimeValue("0:00:01"))

AppActivate ("Microsoft Excel")
Sheets("DataSearcher").Select
Range("K1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon: = False

Range("A1").Select

Dim ie As Object
Set ie = New InternetExplorer
ie.Visible = True     ie.Navigate "http://wwwmyurl"

Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop

ie.Document.getElementById("searchdata1").Value = Range("J1")
ie.Document.getElementById("library").Value = "RECORDINGS"
ie.Document.searchform.Submit



End Sub

person paj    schedule 15.03.2012    source источник
comment
Можете ли вы использовать объект MSXML для публикации прямо на веб-сайте и вообще пропустить автоматизацию - это было бы намного быстрее   -  person SWa    schedule 15.03.2012
comment
Я не знаком с этим. Это передняя часть или задняя часть? Боюсь, я ограничен фронтендом. Просто хочу, чтобы макрос копировал то, что пользователь может делать вручную, но быстрее. Ваше здоровье   -  person paj    schedule 16.03.2012
comment
Это интерфейс, я разместил пример того, как это сделать здесь stackoverflow.com/questions/9486847/ Можете ли вы опубликовать URL-адрес своего фактического сайта?   -  person SWa    schedule 16.03.2012
comment
На самом деле это интранет-сайт. Посмотрю по твоей ссылке, спасибо   -  person paj    schedule 16.03.2012
comment
Я попробовал идею @Kyle по другой проблеме, с которой столкнулся сам. Это не сработало для моей конкретной проблемы, но я поиграл с ней, чтобы разобраться, и это хорошее решение.   -  person Gaffi    schedule 16.03.2012


Ответы (1)


Вы можете попробовать что-то подобное, сильно опираясь на повторное использование COM-объекта автоматизации Internet Explorer для идентификации экземпляра IE с конкретным веб-сайтом. активная страница, которую вы ищете.

Измените
strURL = "http://www.theage.com.au/"
на

«Заголовок моей страницы - Windows Internet Explorer» при необходимости.

VBA

Sub Test()
Dim ShellApp As Object
Dim ShellWindows As Object
Dim IEObject  As Object
Dim strURL As String
strURL = "http://www.theage.com.au/"
Set ShellApp = CreateObject("Shell.Application")
Set ShellWindows = ShellApp.Windows()
Dim i
For i = 0 To ShellWindows.Count - 1
    If InStr(ShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then
        If ShellWindows.Item(i).LocationURL = strURL Then
            Set IEObject = ShellWindows.Item(i)
            MsgBox "IE instance with " & strURL & " found"
            Exit For
        End If
    End If
Next
End Sub
person brettdj    schedule 15.03.2012
comment
Спасибо, BrettDJ. Я попробовал это и изменил URL-адрес, как вы предложили. Хотя, похоже, не работает. Я не уверен, где он находится и что заменяет в моем текущем коде. Я добавил полный код подпрограммы в свой исходный вопрос. Дальнейшая помощь будет очень приветствоваться. Спасибо - person paj; 15.03.2012
comment
@brettdj Вы хотели сказать "заменить strURL на другой URL", а не "My Page..."? - person Gaffi; 15.03.2012
comment
@paj да, я имел в виду изменить StrURL на URL-адрес, который вы хотите найти как открытый в IE - person brettdj; 16.03.2012
comment
Вы можете найти вариант по адресу: mrexcel.com/forum/excel-questions/ - person Julien Kronegg; 20.12.2012