![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
![]()
в коде прописан перебор по нескольким условиям - например так:
Код:
или если условие 2 не выполянется чаще чем условие 1 если его поставить на первое место - будет ли работать быстрее? |
![]() |
![]() |
![]() |
#2 |
Регистрация: 11.06.2008
Сообщений: 7
|
![]()
Думаю, что не будет. Вот если будут вложенные if, то тогда наверняка будет тормозиться ( на большом объеме данных), а условия в одном if проверяются одновременно ( судя по Вашему коду).
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]() Цитата:
Если условие оператора If задано через And, Or и т.п., то проверяются все условия, не зависимо от того, выполняется предыдущее условие или нет. В результате, и код медленнее, и ошибки возможны. Так, например, в строке Код:
Вывод: либо использовать конструкцию Select Case...Case...End Select (если, конечно, это возможно), либо вложенные операторы If.
Чем шире угол зрения, тем он тупее.
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
![]()
2 SAS888
а вложенные If сами по себе не замедляют работу кода?? .. т.к. больше строчек, операций... |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Как правило, ускоряют (см пост №3). Если не выполнилось первое условие, то, во-первых, остальные вообще не проверяются, во-вторых, вложенные строки кода не выполняются.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 29.05.2009 в 12:03. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
![]()
ок... спасибо .. ща попробую
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Только расставьте условия (вложения If) в нужном порядке. Т.е. самое внешнее условие должно выполняться наиболее редко. И т.д.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#9 | |
Регистрация: 11.06.2008
Сообщений: 7
|
![]() Цитата:
Вывод : я бы использовал вложенные if , причем так, чтобы внешний if выполнялся как можно реже ( чтобы реже заходить во внутренние условия). Тогда должен работать быстро. ну а если всех возможных условий немного, то лучше через case - самое оно! Последний раз редактировалось kolebatel; 29.05.2009 в 12:21. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 110
|
![]()
уу-у-у-у блин... короче .. эффект следующий .. до того код выполнялся 12 минут. после - 1,5 ...
что бы еще оптимизировать ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Визуализация работы макроса | Gawwws | Microsoft Office Excel | 24 | 01.09.2010 18:16 |
прерывание работы макроса | zander | Microsoft Office Excel | 3 | 21.05.2009 21:12 |
Log работы макроса | valerij | Microsoft Office Excel | 3 | 03.03.2009 00:04 |
Визуализация работы макроса | zander | Microsoft Office Excel | 7 | 15.02.2009 01:09 |
Запуск макроса с параметрами из другого макроса | Saladin | Microsoft Office Excel | 2 | 19.01.2009 09:43 |