Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6469
Последний выпуск: 19.06.2015

Скорость работы Excel VBA

85K
18 октября 2012 года
Omel
1 / / 18.10.2012
Здравствуйте! Так получилось, что процедура обработки каждой строки таблицы Excel разрослась до 300-350 строк кода (много форматирования по условиям) , а таблица не маленькая. На старых машинах работает вообще не быстро. Подскажите, есть ли возможность узнать время выполнения скрипта в милисекундах, попробую найти узкие места. И еще стало интересно, есть ли смысл использовать встроенные функции VBA, если в данном конкретном случае можно обойтись стандартными средствами. Грубо говоря для примера что должно работать быстрее:
(дана таблица, 3 столбца, строк неизвестно, вычисления внутри цикла для каждой строки)

 
Код:
For i = 1 To Cells(1, 1).CurrentRegion.Rows.Count
...
Next
или

 
Код:
i = 1
Do While Cells(i, 1) = Cells(i, 2) = Cells(i, 3) = Empty
...
i = i + 1
Loop
388
18 октября 2012 года
Dmitrii
554 / / 16.12.2004
1. Пример определения времени работы части кода (в миллисекундах):
 
Код:
Dim sglFirst As Single, sglLast As Single
sglFirst = Timer
i = 1
Do While i < 10000
Cells(i, 1).Clear
i = i + 1
Loop
sglLast = Timer
MsgBox (sglLast - sglFirst) * 1000
2. Быстрее всего работают функции рабочего листа.
3. Существуют способы оптимизации кода, сокращающие время обработки, например, отключение перерисовки изображения на экране, отключение автопересчёта формул, отказ от использования методов Select и Activate и т.п.
4. Что именно Вы называете "встроенными функциями VBA"?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог