VBA Auotmation - закрытие IE до запуска IE.Quit зависает Excel - PullRequest
0 голосов
/ 16 октября 2019

У меня есть некоторый код, который закрывает IE после некоторой автоматизации веб-сайта VBA (после ожидания в течение определенного периода времени).

Application.Wait (Now + TimeValue("00:00:55"))
IE.Quit
Set IE = Nothing
Set doc = Nothing

Проблема заключается в том, что если кто-то непреднамеренно закрывает IE до выполнения кода IE.Quit, Excel зависает, потому что свойство IE больше не существует.

Я пробовал что-то подобное (см. Ниже фрагмент кода), но Excel по-прежнему зависает, если он закрыт до того, как таймер выполнит код (Ошибка времени выполнения '462 ', компьютер удаленного сервера не существует или недоступен):

Application.Wait (Now + TimeValue("00:00:55"))
If IE Is Nothing Then
    'do nothing
Else
    IE.Quit
    Set IE = Nothing
    Set doc = Nothing
End If

Любые идеи или рекомендации будут высоко оценены.

1 Ответ

0 голосов
/ 16 октября 2019

Я согласен с тем, что говорит Матье. Замораживание происходит из-за ожидания, которое все еще выполняется. Все, что вы поставите после Application.Wait, будет выполнено после ожидания - то есть после «заморозки».

Вы можете добавить On Error Resume Next только после Application.Wait (Now + TimeValue("00:00:55")), чтобы избежать отображения ошибки, но вы не можете остановить ожидание.

...