2014-10-29 3 views
1

После запуска макроса в течение длительного периода времени ScreenUpdating в Excel полностью прекращает работу, даже когда макрос заканчивается. Я никогда не устанавливал его в false, но он ведет себя так, как будто он установлен в false, и единственный способ сделать Excel обновлением экрана снова - закрыть его и снова открыть. Однако экран VBA работает. Я попытался запустить DoEvents и ScreenUpdating = True, но окно Excel не обновляется визуально (оно не заморожено). Есть ли способ очистить буфер ScreenUpdating? Я попытался вручную установить его на false и true безрезультатно.Ошибка ExcelUpdating Microsoft Excel 2013

Если вы хотите, чтобы дублировать эту ошибку, используйте этот код

Application.OnTime (теперь + TimeValue ("0:00:05")), "имя_макроса", (теперь + TimeValue ("0:00: 10 ")), True

Затем я копирую код и вставляю некоторые значения, и я управляю, когда цикл останавливается со значением обратного отсчета в ячейке A1, например.

+0

@PortlandRunner View -> Immediate Window (Ctrl + G), это окно появляется, даже если оно не обновляет экран, и я могу сказать невидимо. Я взаимодействую с Листом Excel, если я начинаю нажимать на фон, но он ведет себя точно так же, как если для параметра ScreenUpdating установлено значение false. В ближайшем окне я попробую Application.ScreenUpdating = False, а затем True и ничего не изменится. Это как если бы я взорвал ScreenBuffer из всех моих копий и вставки. Проблема в том, что это происходит почти каждый раз (это тоже довольно случайный случай!). – CodeCamper

+0

Я никогда не видел этого, независимый юзер с ScreenUpdating = True всегда работал на меня. –

+0

@ n8 Дело в том, что я даже не выключил ScreenUpdating в моем Макро, но он ведет себя так, как будто он выключен. Должно быть какое-то переполнение экранного буфера. Когда я слишком сильно меняю окна, это также сделает это. Мне жаль, что есть какой-то способ очистки экранного буфера. – CodeCamper

ответ

2

Я получил эту проблему в своем Excel 2013. Для меня это было вызвано, когда я загрузил пользовательскую форму. Это было очень, очень странно. После многих проб и ошибок я обнаружил, что причиной этого является использование таблиц («MySheet»). Активируйте команду. Я переместил эту команду из режима работы после того, как я показал и закрыл форму, до того, как я покажу форму (т. Е. Сразу, когда пользователь нажмет кнопку «показать форму».) Это исправило это. Попробуйте возиться с вашими листами. Активируйте команды.

Смежные вопросы