Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как соптимизировать макрос / 3 сообщений из 3, страница 1 из 1
24.01.2006, 21:17:22
    #33500964
hrust999
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как соптимизировать макрос
есть выкачка в excell балансовых данных. Упрощенно выглядит в excel вот так
a b c d
1 20202 810 350
2 20207 810 450
3 20202 810 300

Делаю кнопку, чтобы сгруппировать их по столбцам a и b, результат сложить и выкинуть на другой лист.

Макрос на кнопке идет по следующему алгоритму.
'столбец d - признак уже обработанной строки



Цикл по всей выгрузке
Если столбец d <> 1 ' т.е. строка не была обработана
Запоминаю параметры из текущей строки (param)
Цикл по всей выгрузке от строки текущая + 1
Если столбец d <> 1 и param = параметры
Сумма
d = 1
end if
next

d = 1
выкидываю результат на новый лист
end if
next


т.е. использую для группировки двойной цикл

представленный алгоритм упрощен, проблема в том, что выгрузка моя более 20 тысяч строк в excel плюс в телах циклов дополнительные обработки. Все делается очень долго в районе 30 минут, что никак не приемлемо для пользователя.


Хочется сделать все на кнопке поэтому встроенные итоги не хочу применять.
в Microsoft query тоже долго.

спецом по vba не являюсь, поэтому подскажите пожалуйста есть ли решение у моей задачи другим алгоритмом, чтобы быстро и красиво. Спасибо.
...
Рейтинг: 0 / 0
24.01.2006, 23:05:42
    #33501051
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как соптимизировать макрос
отсортируй по столбцу (столбцам) группировки сначала (Range.Sort). Тогда сможешь обойтись одним проходом.
Запомнить параметры первой строки, запомнить первое значение суммы.
Читаешь очередную строку и сравниваешь параметры очередной строки с предыдущими. Если отличаются - сохраненые параметры и накопленную сумму сбрасываешь в целевой лист, и повторяешь все сначала.

А еще можно после сортировки воспользоваться функцией Subtotal. Получишь результат на том же самом листе что и исходная таблица.
...
Рейтинг: 0 / 0
25.01.2006, 17:19:47
    #33503125
hrust999
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как соптимизировать макрос
спасибо попробую
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как соптимизировать макрос / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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