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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д