|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.07.2010, 08:49 | #1 |
Форумчанин
Регистрация: 25.11.2009
Сообщений: 113
|
Помогите оптимизировать макрос
Здравствуйте! Подскажите, пожалуйста, как можно оптимизировать макрос, который находится в примере. Надо просуммировать данные по определенным параметрам, и вывести их в нужные ячейки. Что макрос и делает. Но когда строк около 10000, а таблица, которую надо заполнить очень большая, макрос выполняется очень долго.
Скажу сразу, про сводные таблицы знаю, работать научилась, данные получать тоже, но иногда она не подходит. Поэтому прошу помощи с данным макросом. |
24.07.2010, 13:58 | #2 |
Форумчанин
Регистрация: 14.05.2009
Сообщений: 311
|
небольшая коррекция
можно привлечь встроенные средства Excel (СУММЕСЛИ напр.) |
24.07.2010, 14:44 | #3 |
Форумчанин
Регистрация: 25.11.2009
Сообщений: 113
|
Суммесли - это хорошо, но когда данные берутся из другой книги, не очень удобно, постоянно обновлять надо. И если более 2000 строк очень долго пересчет происходит. Про накопитель значений - косяк, недосмотрела. А так макрос все равно медленно работает, он каждый раз все строки прогоняет заново.
|
24.07.2010, 17:49 | #4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Убедился уже много раз.что для обработки такого количества строк очень удобно использовать АДО.На примере данных в 50 000 строк отработал менее 2 секунд.Имя листа с данными должно быть Лист1,под себя внесете исправления.
Единственный минус-месяцы идут по алфавиту.Если бы был формат даты -тогда без проблем. Я думаю проще столбцы потом поменять.
Анализ,обработка данных Недорого
|
24.07.2010, 17:54 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я в последнее время массивы использую почаще. Вроде и код прозрачный, и быстро работают.
Вот этот код на диапазоне A2:E65500 отработал за 6.5 секунд. Легко поменять всё под другие диапазоны. Файл тот же исходный, только данные вниз размножил. Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
24.07.2010, 18:23 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
To doober - на моей машине ADO обошёл массивы всего на 2 секунды (время открытия файла не учитывал, только время работы Shet path, "Лист1").
А как же Перчатки 1/2/3? И расположение... И код сложнее. Я за массивы!
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 24.07.2010 в 18:51. |
24.07.2010, 19:22 | #7 |
Форумчанин
Регистрация: 23.11.2006
Сообщений: 152
|
подскажите, как вы внесли формулу с фигурными скобками? в смысле, что это за формула такая?
|
24.07.2010, 19:25 | #8 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
А я в последнее время ближе к базам и SQL.Да действительно в перчатках не правильный результат.если число сохранить как текст-работает правильно
Анализ,обработка данных Недорого
|
24.07.2010, 19:29 | #9 |
Форумчанин
Регистрация: 14.05.2009
Сообщений: 311
|
|
24.07.2010, 20:12 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я тут подумал, и убрал один массив, правда работать особо быстрее не стало, и код проще не стал. Но всёж... Хотя можно и ещё один массив убрать...
Вот, вместо 4 массивов оставил 2. Особо быстрее работать не стало, может на пару сотых секунды. Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 24.07.2010 в 20:55. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите оптимизировать код. | kievlyanin | Microsoft Office Excel | 3 | 22.05.2009 18:20 |
помогите оптимизировать! | kievlyanin | Microsoft Office Excel | 11 | 28.04.2009 14:19 |
Помогите оптимизировать процедуру | Cold Went | Компоненты Delphi | 4 | 29.04.2008 15:11 |
Помогите оптимизировать! | Altera | Общие вопросы Delphi | 6 | 25.03.2008 20:09 |
помогите оптимизировать процедуру | _XspeC_ | Общие вопросы Delphi | 12 | 08.04.2007 02:05 |