Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Оптимизировать код / 11 сообщений из 11, страница 1 из 1
13.11.2012, 11:23
    #38035880
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
KVED = Worksheets("KVED").Cells(Rows.Count, 2).End(xlUp).Row
    KVEDÃîòîâ = Worksheets("Ãîòîâ").Cells(Rows.Count, 1).End(xlUp).Row
For i = 4 To KVEDÃîòîâ
            x = 2
            Do While x < KVED
            If Worksheets("&#195;&#238;&#242;&#238;&#226;").Range("B" & i) = Worksheets("KVED").Range("A" & x) Then
                Worksheets("&#195;&#238;&#242;&#238;&#226;").Range("D" & i) = Worksheets("KVED").Range("B" & x)
            End If
            x = x + 1
            Loop
        Next i



Вот такая маленька прога а считает минут 10 ((. Что не так? Может надо как то память очищать, перед ней работает еще одна огромная прога, может это влиять?
...
Рейтинг: 0 / 0
13.11.2012, 11:41
    #38035921
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
а че, формулами нельзя?
...
Рейтинг: 0 / 0
13.11.2012, 11:43
    #38035925
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
PlanB,

Может и можно, но не знаю как )
...
Рейтинг: 0 / 0
13.11.2012, 11:44
    #38035926
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
если одно < даругого, то третья. дайте пример данных
...
Рейтинг: 0 / 0
13.11.2012, 11:46
    #38035932
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
alexey_grigorov,
скорее всего много лишних сравнений/изменений во вложенном цикле
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
KVED = Worksheets("KVED").Cells(Rows.Count, 2).End(xlUp).Row
KVED&#195;&#238;&#242;&#238;&#226; = Worksheets("&#195;&#238;&#242;&#238;&#226;").Cells(Rows.Count, 1).End(xlUp).Row

Dim ZZ

For i = 4 To KVED&#195;&#238;&#242;&#238;&#226;
    ZZ = Worksheets("&#195;&#238;&#242;&#238;&#226;").Cells(i, 2)
    x = KVED - 1
    Do Until x < 2
      If ZZ = Worksheets("KVED").Cells(x, 1) Then
          Worksheets("&#195;&#238;&#242;&#238;&#226;").Cells(i, 4) = Worksheets("KVED").Cells(x, 2)
          Exit Do
      End If
      x = x - 1
    Loop
Next i

...
Рейтинг: 0 / 0
13.11.2012, 11:47
    #38035936
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
PlanB,
Код: xml
1.
2.
3.
4.
5.
6.
A		01.11	Вирощування зернових та технiчних культур	ВЫРАЩИВАНИЕ ЗЕРНОВЫХ, ТЕХНИЧЕСКИХ И ПРОЧИХ КУЛЬТУР, НЕ ОТНЕСЕННЫХ К ДРУГИМ КЛАССАМ РАСТЕНИЕВОДСТВА
A		01.11.0	Вирощування зернових та технiчних культур	ВЫРАЩИВАНИЕ ЗЕРНОВЫХ ТЕХНИЧЕСКИХ И ПРОЧИХ КУЛЬТУР, НЕ ОТНЕСЕННЫХ К ДРУГИМ КЛАССАМ РАСТЕНИЕВОДСТВА
A		01.12	Овочiвництво, декоративне садiвництво та вирощування продукцiї розсадникiв	ОВОЩЕВОДСТВО, ДЕКОРАТИВНОЕ САДОВОДСТВО И ВЫРАЩИВАНИЕ ПРОДУКЦИИ ПИТОМНИКОВ
A		01.12.0	Овочiвництво, декоративне садiвництво та вирощування продукцiї розсадникiв	ОВОЩЕВОДСТВО, ДЕКОРАТИВНОЕ САДОВОДСТВО И ВЫРАЩИВАНИЕ ПРОДУКЦИИ ПИТОМНИКОВ
A		01.13	Вирощування фруктiв, ягiд, горiхiв, культур для виробництва напоїв i прянощiв	ВЫРАЩИВАНИЕ ФРУКТОВ, ЯГОД, ОРЕХОВ, КУЛЬТУР ДЛЯ ПРОИЗВОДСТВА НАПИТКОВ И ПРЯНОСТЕЙ
A		01.13.0	Вирощування фруктiв, ягiд, горiхiв, культур для виробництва напоїв i прянощiв	ВЫРАЩИВАНИЕ ФРУКТОВ, ЯГОД, ОРЕХОВ, КУЛЬТУР ДЛЯ ПРОИЗВОДСТВА НАПИТКОВ И ПРЯНОСТЕЙ



Код: xml
1.
2.
3.
4.
5.
6.
7.
21216224	52.11.0
21218217	52.12.0
21218246	28.11.0
21218884	70.20.0
21218890	36.14.0
8794028	75.25.0
23911603	63.21.1
...
Рейтинг: 0 / 0
13.11.2012, 12:05
    #38035987
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
Судя по всему, нужен обычный ВПР() ...
...
Рейтинг: 0 / 0
13.11.2012, 12:35
    #38036076
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
alexey_grigorov, а что, файл excel нельзя было создать? вот я лично тут вообще нихрена не понимаю.

AndreTM, +100500 и нефиг даже нажимать alt+f11
...
Рейтинг: 0 / 0
13.11.2012, 12:52
    #38036116
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
скукотища,

Спасибо! с 15 до 2 минут ускорился просчет!
...
Рейтинг: 0 / 0
13.11.2012, 12:53
    #38036119
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
PlanB,

Та там он огромнейший просто! )
...
Рейтинг: 0 / 0
13.11.2012, 20:05
    #38036966
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизировать код
alexey_grigorovТа там он огромнейший просто! )И что? Если список KVED упорядочен, то функции листа будут работать ничуть не медленнее вашего кода.
Другое дело, имеет смысл использовать собственную функцию, если вам не нужна полная интерактивность - поскольку у вас список KVED[чего-то там] может содержать очень много строк, и проще один раз пересчитать. Но и в этом случае "самописного" не нужно - просто пробегаете по списку и подставляете ВПР() программно, сразу же заменяя формулу значением...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Оптимизировать код / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]