VBA Internet Explorer ошибка
Формулировка задачи:
Хочу с помощью VBA организовать работу с браузером - открыть страницу, понажимать на кнопки и т. д.. На конкретном примере:
Первая страница - авторизация. Ввожу логин и пароль, нажимаю на кнопку:
После этого открывается другая страница (во всяком случае визуально) и там есть тег id > > - Selections > - Campaigns >G - Misc
Мне надо выбрать определенный option и т. д.
Для этого написал код:
Проблема в том,что в процессе выполнения кода (авторизация прошла и новая страница открылась) выскакует ошибка:
"Run-time error '91' - Object variable or With Block variable not set "
Выделена строка:
Подскажите пожалуйста в чем проблема? Заранее спасибо!
Первая страница - авторизация. Ввожу логин и пароль, нажимаю на кнопку:
После этого открывается другая страница (во всяком случае визуально) и там есть тег id > > - Selections > - Campaigns >G - Misc
Мне надо выбрать определенный option и т. д.
Для этого написал код:
Проблема в том,что в процессе выполнения кода (авторизация прошла и новая страница открылась) выскакует ошибка:
"Run-time error '91' - Object variable or With Block variable not set "
Выделена строка:
Самое смешное, что если дальше нажать F5 - все продолжает правильно работать.
Подскажите пожалуйста в чем проблема? Заранее спасибо!
Решение задачи: «VBA Internet Explorer ошибка»
textual
Листинг программы
Private Sub Form_Load()
Set Sys.Icon = Image2.Picture
Sys.Visible = True
Sys.Enabled = True
Me.WindowState = 0
Me.Hide
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate ".........."
While objIE.Busy
DoEvents
Wend
objIE.document.Forms(0).Elements("pt1:it1").Value = "........."
Wait (1)
objIE.document.Forms(0).Elements("pt1:it2").Value = "............."
Wait (1)
objIE.document.getelementbyID("pt1:cb1").Click
Wait (1)
While objIE.Busy
DoEvents
Wend
objIE.document.getelementbyID("pt1:j_id5").Click
Wait (1)
While objIE.Busy
DoEvents
Wend
objIE.document.getelementbyID("pt1:r1:0:j_id6::disAcr").Click 'Інформація
Wait (1)
While objIE.Busy
DoEvents
Wend
Wait (1)
objIE.document.getelementbyID("pt1:r1:0:mcl_63").Click
Wait (1)
While objIE.Busy
DoEvents
Wend
TestPos = InStr(1, objIE.document.body.innerText, "No data to display.")
Do
Debug.Print objIE.document.body.innerText
If TestPos <> 1722 Then
Set Sys.Icon = Image3.Picture
Sys.DisabledBalloonIcon = Info
Sys.BalloonText = "Пришло письмо или почта необработанна!"
Sys.BalloonTitle = "Сообщение"
Sys.ShowBalloon
End If
objIE.document.getelementbyID("pt1:r1:0:perSends:0:pc1:ctb1::icon").Click 'обновить
While objIE.Busy
DoEvents
Wend
Wait (60)
Loop
End Sub
Public Sub Wait(seconds)
Timer1.Enabled = True 'включение таймера
Timer1.Interval = 1000 * seconds 'установка интервала для таймера
While Timer1.Interval > 0
DoEvents
Wend
Timer1.Enabled = False ' выключение таймера
End Sub
Private Sub Sys_Click(Button As Integer)
Set Sys.Icon = Image2.Picture
End Sub
Private Sub Timer1_Timer()
Timer1.Interval = 0
End Sub