Страница 1 из 1

ScreenUpdating

Добавлено: 22 авг 2009, 16:46
Busine2009
Прочитал только что в учебнике VBA для чайников, что в конце надо обязательно ставить

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

ScreenUpdating = True
чтобы увидеть результаты макроса.
Но я почему-то и без Тру вижу результаты макроса. Чайник писал для Чайников.
Кто что думает по этому поводу?

Re: ScreenUpdating

Добавлено: 23 авг 2009, 23:16
airyashov
Обычно ставится в начале работы макроса
ScreenUpdating = False
что бы отрисовка не тормазила

Re: ScreenUpdating

Добавлено: 24 авг 2009, 20:31
Busine2009
Естественно я ставлю Фолс в начале, я же не совсем отмороженный.

Re: ScreenUpdating

Добавлено: 25 авг 2009, 05:47
SAS888
Попробую немного пояснить.
Не смотря на то, что разработчики ПО Microsoft Office VBA Excel рекомендуют (именно рекомендуют, а не обязывают) в конце кода макроса выполнять ScreenUpdating = True, можно этого и не делать, за исключением нескольких возможных случаев. А именно:
1. Если, например, в ходе работы макроса, "выскакивает" окно с сообщением (MsgBox и т.п.) и при этом, данные на экране должны отображать текущие значения.
2. Если в процедуре есть вызов (или несколько вызовов) других процедур.
3. Если используется макрос по событию листа (книги) Worksheet_Change (Worksheet_SelectionChange), то при установленном ScreenUpdating = False значение Target будет ошибочным.
Возможно, есть и другие случаи, где устанавливать True необходимо. Поэтому, если Вы уверены, что этих случаев нет, то значение True можно не возвращать (я сам часто это делаю). Но, все-таки, надежнее это делать всегда.

Re: ScreenUpdating

Добавлено: 25 авг 2009, 10:48
EducatedFool
А вот что мне ответили на аналогичный вопрос на англоязычном форуме:
http://www.mrexcel.com/forum/showpost.p ... ostcount=9

Re: ScreenUpdating

Добавлено: 25 авг 2009, 20:02
Busine2009
Я сегодня на своём личном опыте узнал, что действительно нужно ставить в конце Тру. Просто есть ситуации, когда Тру не влияет.