Excel: все быстрее, быстрее и быстрее
Сейчас, для быстроты использую:
Application.ScreenUpdating = False
Однако заметил вот что, в одном моем файле идет удаление строк, при этом в первом столбце забит 13зн. цифровой код. И при удалении строк (при установл. Application.ScreenUpdating = False), я вижу как на статусбаре Excel'a мелькает фраза - "Готово" и итоговая сумма по первому столбцу, которую Excel вычисляет заново после каждого удаления строки (как Вы понимаете эта его сумма в процессе работы макроса мне нафиг не нужна).
Т.е. в процессе работа макроса, Excel параллельно еще нагружает процессор своими не нужными мне вычислениями, что не есть гуд. Интересно, можно ли это как-нибудь запретить...?
Пробовал такую вещь: ActiveSheet.EnableCalculation = False - реакция ноль.
Ставишь в начале
Application.Calculation = xlCalculationManual
а в конце
Application.Calculation = xlCalculationAutomatic
Естественно, это уместно, когда у тебя туча сложных формул.
И помни таких две тонкости.
1. Если у тебя есть формула, например, =А2, ты МЕНЯЕШЬ в программе значение ячейки А2, то значение ячейки с формулой не изменится без дополнительного Application.Calculate
2. В отличие от .ScreenUpdating свойство .Calculation само после окончания работы макроса не восстановится. Поэтому если ты прервал работу макроса, придется заново включать автопересчет в Сервис/Параметры...
2. В отличие от .ScreenUpdating свойство .Calculation само после окончания работы макроса не восстановится. Поэтому если ты прервал работу макроса, придется заново включать автопересчет в Сервис/Параметры...
Воткнем тогда этот код в обработку выхода макроса. Конечно если они прервут по Ctrl+Break...., но у меня пользователь скорее нажмет кнопку на форме - "Прервать" и тогда уж не минует заветной строчки... :)
А по поводу тучи формул: у меня импортируется из текст. файла инфа в Excel - одни голые значения, а потом уже, после все можного форматирования добавляются в несколько столбцов пару формул - тогда я так понимаю надо свойство можно включить (а можно и не включать пока) и на принудительную Calculate функцию запустить..
Воткнем тогда этот код в обработку выхода макроса. Конечно если они прервут по Ctrl+Break...., но у меня пользователь скорее нажмет кнопку на форме - "Прервать" и тогда уж не минует заветной строчки... :)
А по поводу тучи формул: у меня импортируется из текст. файла инфа в Excel - одни голые значения, а потом уже, после все можного форматирования добавляются в несколько столбцов пару формул - тогда я так понимаю надо свойство можно включить (а можно и не включать пока) и на принудительную Calculate функцию запустить..
Когда включаешь автоматическое вычисление, .Calculate делается само собой.
Если у тебя всего пара десятков формул на книгу, сомневаюсь, что ты ускоришь работу таким образом.
Это когда целый столбец строк этак на 40000, да формулы не простые а "порядка n" (СУММ, СУММЕСЛИ, ПОИСКПОЗ, в общем, кому надо целый столбец перебирать) - тогда имеет смысл.
Замерим, проверим... :)
Если есть ячейки с твоими собственными ВБАшными функциями, то скорость также зависит от того открыто ли окно ВБА.
Пиши о результатах, поборемся за секунды.
Если есть ячейки с твоими собственными ВБАшными функциями, то скорость также зависит от того открыто ли окно ВБА.
Пиши о результатах, поборемся за секунды.
Только после отпуска..... :):):)
Только после отпуска..... :):):)
Ого! Счастливо отдохнуть. Без тебя тут будет трудно... ;)
Ладно, прорвемся...
Ого! Счастливо отдохнуть. Без тебя тут будет трудно... ;)
Ладно, прорвемся...
Тоже хочу пожелать успешного отдыха, а вот я вернулся, и учитывая отпуск Сергея буду стараться больше внимания обращать на этот форум, так-что прорвемся