2

У меня была эта проблема в Excel 2003, но, возможно, она также присутствует в более ранних версиях.

У меня есть таблица Excel, которая импортирует данные с помощью веб-запроса, который подключается к веб-странице, размещенной на серверах моей компании. Данные меняются день ото дня, как и URL, поэтому у меня есть макрос, который заботится об изменении URL и автоматически обновляет все данные каждый час.

Работает нормально, но иногда сервер компании вылетает. Когда мой макрос пытается подключиться к серверу, и он не работает, появляется следующее сообщение: «Невозможно открыть. Не удается найти интернет-сервер или прокси-сервер ". Excel останавливает макрос всякий раз, когда это происходит, и он не будет продолжаться, пока я не нажму кнопку «Принять» вручную. Это большая проблема, так как данные должны постоянно обновляться.

Я искал много способов решить проблему. Я попытался добавить обработчик ошибок "Приложение.DisplayAlerts = False "в верхней части макроса, и я тоже это сделал, но безрезультатно.

Вот мой код:

Sub ChangeURL()
    Application.DisplayAlerts = False
    On Error Resume Next
    Dim NewURL As String
    Dim Today As String
    'M1 contains today's date formatted as text
    Today = Range("M1").Value
    NewURL = "URL;http://www.example-url.com/data/date=" & Today
    'Change the table's URL so it gets today's data
    With ActiveSheet.QueryTables(1)
        .Connection = NewURL
    End With
    ActiveWorkbook.RefreshAll
    'Re-execute the macro after an hour has passed
    Application.OnTime Now + TimeValue("01:00:00"), "Change", , True
    Application.DisplayAlerts = True
End Sub

Есть ли способ действительно отключить эти окна сообщений?

1 ответ1

0

Нечто подобное может сработать.

Sub MyMacro()

    code...code...code
    ....trying to connect....
    On Error GoTo ErrorHandler
    code...code...code
    Exit Sub

ErrorHandler:
    . . .
    Resume <or Exit Sub>
    . . .

End Sub

ОТ: https://support.microsoft.com/en-us/kb/141571

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .