Автоматизация VBA IE приводит к пустой странице - PullRequest
0 голосов
/ 08 марта 2020

В настоящее время я создаю файл Excel с макросом VBA для сбора / обновления некоторых данных с веб-сайта. Используемый файл представляет собой базовую c таблицу, в которой первый столбец представляет собой идентификатор (например, «XX55»), а в следующем столбце - описание идентификатора.

В третьем столбце я хотел бы собрать номер на точном веб-сайте (для торговли и т. д. c). Он отлично работает.

Проблема в том, что иногда страница IE загружается пустой. Если я пытаюсь «вручную» загрузить страницу в другом окне IE, это не так! Я действительно не знаю, почему существует эта проблема ...

Кто-нибудь уже сталкивался с такой проблемой? Я думал, что мой IP может быть заблокирован сервером, но так как он работает в новом окне, я так не думаю ...

Вот мой код:

Sub update_value()

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    Dim appIE As Object
    Set appIE = CreateObject("internetexplorer.application")
    Dim i As Variant
    Dim myTab As Variant

    myTab = Sheets("List").Range("N1:X1").Value

    For i = 1 To 200
        With appIE
            .navigate "https://www.my-website.com/" & LCase(Sheets("List").Cells(i + 1, 1))
            .Visible = False
        End With

        Do While appIE.busy Or appIE.readystate <> 4
            DoEvents
        Loop

        If IsObject(appIE.document.getElementByID("n_value")) Then
            myTab(1, 1) = appIE.document.getElementByID("n_value").innerText
            Sheets("List").Range("C" & i + 1 & ":M" & i + 1).Value = myTab
        Else

        End If

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

End Sub

Спасибо за Ваша помощь!

С уважением,

Джерри

...