|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
Ребят, написал на скоряк код, в тот момент он мне все по считал, но считает жутко долго, сам понимаю что алгоритм ужасен, поэтому прошу помощи в оптимизации, так как в vba не сильно разбираюсь) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
И это только кусочек кода, он запускается 8 раз, выполняется это все секунд 15 :) Понимаю что внутренний цикл косячный, каждый раз 12000 оборотов прогоняет, но как по шустрей можно искать элемент в массиве!?) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 14:34 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
Что такое arrTbl1, arrTbl2? Range или массив? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 14:35 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
И вообще, лучше полностью изложить задачу, а не "угадай мелодию по первым трем нотам" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 14:37 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
Массивы, вопросом наверное больше в том, как сделать быстрый поиск элемента, в большом массиве!? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 15:36 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
viton-zizuМассивы, вопросом наверное больше в том, как сделать быстрый поиск элемента, в большом массиве!?не использовать массив. Использовать, например, словарь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 15:39 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
viton-zizu, Возможно внутрений запрос SQL будет быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 15:44 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
viton-zizuМассивы, вопросом наверное больше в том, как сделать быстрый поиск элемента, в большом массиве!? Функция Filter для массива, вроде, достаточно быстро - 8мь "поисков" (ещё и с генерацией данных) уложились в 1сек массив только должен быть строковым или Variant Код: plaintext 1. 2. 3. 4. 5.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 16:25 |
|
Оптимизировать ужасный код vba
|
|||
---|---|---|---|
#18+
viton-zizuкак по шустрей можно искать элемент в массиве!?Быстрее всего - отсортировать диапазон по столбцу поиска до загрузки в массив, а потом искать в массиве функцией листа ПОИСКПОЗ (Application.Match в VBA) с 3-м аргументом = 1 (интервальный просмотр). С таким аргументом функция не просматривает все подряд, а использует метод половинного деления или что-то вроде того. Получается очень быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2015, 20:39 |
|
|
start [/forum/topic.php?fid=61&tid=2173623]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 116ms |
0 / 0 |