ScreenUpdating

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Прочитал только что в учебнике VBA для чайников, что в конце надо обязательно ставить

Код: Выделить всё

ScreenUpdating = True
чтобы увидеть результаты макроса.
Но я почему-то и без Тру вижу результаты макроса. Чайник писал для Чайников.
Кто что думает по этому поводу?
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Обычно ставится в начале работы макроса
ScreenUpdating = False
что бы отрисовка не тормазила
icq:3(один)7748666
mail:airyashov( а)inbox.ru
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Естественно я ставлю Фолс в начале, я же не совсем отмороженный.
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Попробую немного пояснить.
Не смотря на то, что разработчики ПО Microsoft Office VBA Excel рекомендуют (именно рекомендуют, а не обязывают) в конце кода макроса выполнять ScreenUpdating = True, можно этого и не делать, за исключением нескольких возможных случаев. А именно:
1. Если, например, в ходе работы макроса, "выскакивает" окно с сообщением (MsgBox и т.п.) и при этом, данные на экране должны отображать текущие значения.
2. Если в процедуре есть вызов (или несколько вызовов) других процедур.
3. Если используется макрос по событию листа (книги) Worksheet_Change (Worksheet_SelectionChange), то при установленном ScreenUpdating = False значение Target будет ошибочным.
Возможно, есть и другие случаи, где устанавливать True необходимо. Поэтому, если Вы уверены, что этих случаев нет, то значение True можно не возвращать (я сам часто это делаю). Но, все-таки, надежнее это делать всегда.
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

А вот что мне ответили на аналогичный вопрос на англоязычном форуме:
http://www.mrexcel.com/forum/showpost.p ... ostcount=9
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Я сегодня на своём личном опыте узнал, что действительно нужно ставить в конце Тру. Просто есть ситуации, когда Тру не влияет.
Ответить