ScreenUpdating не позволяет закрывать книги - PullRequest
0 голосов
/ 29 мая 2020

У меня проблема с закрытием книг в моем макросе. Я хотел ускорить свой макрос, используя:

Application.ScreenUpdating = False
'my code
Application.ScreenUpdating = True

Но когда он завершился sh, внезапно все книги, которые я использовал, открываются вместе. Я хотел закрыть их, поэтому добавил строки * Workbooks.Close *. К сожалению, ошибка появляется, когда VBA достигает этой строки кода. Это потому, что Excel «не видит» мои книги. Когда я закрываю ошибку windows и снова пытаюсь запустить закрывающие строки, все работает правильно, потому что у книг было достаточно времени для открытия. Вероятно, Excel потребуется некоторое время, чтобы обновить и открыть все книги, поэтому я должен отложить свой код. Я пробовал * Application.Wait * и * Do until l oop *, но это не сработало. Я также пытался закрыть эти книги перед обновлением экрана, но Excel просто проигнорировал эти строки.

Мои последние строки кода:

Application.ScreenUpdating = True

Application.DisplayAlerts = False

Workbooks(wb_1).Close
Workbooks(wb_2).Close

Application.DisplayAlerts = True

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 29 мая 2020

Как сказал Дамиан, попробуйте добавить:

Workbooks(wb_1).Close savechanges:=false
Workbooks(wb_2).Close savechanges:=false

или true, если необходимо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...