VBA Internet Explorer ошибка

Узнай цену своей работы

Формулировка задачи:

Хочу с помощью VBA организовать работу с браузером - открыть страницу, понажимать на кнопки и т. д.. На конкретном примере:
Первая страница - авторизация. Ввожу логин и пароль, нажимаю на кнопку:

После этого открывается другая страница (во всяком случае визуально) и там есть тег 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5