Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2013, 10:04   #1
KaSS
Пользователь
 
Аватар для KaSS
 
Регистрация: 30.07.2013
Сообщений: 46
По умолчанию Оптимизация

Как можно оптимизировать код таким образом, чтобы макрос выполнялся быстрее. Кол-во строк очень большое (до 90 тыс строк). Вообще все операции выполняются в массивах. Может можно использовать что то другое? Я только начинаю программировать в vba
perseverance overcomes all things
KaSS вне форума Ответить с цитированием
Старый 31.07.2013, 10:16   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Как можно оптимизировать код
Чтобы что-то оптимизировать, нужно хотя бы посмотреть ЧТО оптимизировать, т.е. код.
А так - все будет общие фразы и догадки.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 31.07.2013, 10:33   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Виктор, судя по этому
Цитата:
(до 90 тыс строк)
код записан с макрорекордера может... и смотреть не стоит?

KaSS, Ваш код работает? если да - пусть себе работает ничего не оптимизируйте
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.07.2013, 10:57   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так ведь написано:
"Вообще все операции выполняются в массивах."
Ну можно ещё словари/коллекции подключить.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.07.2013, 11:11   #5
KaSS
Пользователь
 
Аватар для KaSS
 
Регистрация: 30.07.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Виктор, судя по этому
код записан с макрорекордера может... и смотреть не стоит?
Нет, не с макрорекодера.

Да, работает. Но работает 15 мин. Если вдруг нашли ошибку в исходной таблице, исправили, то макрос нужно запускать заново что бы он снова обработал таблицу, присвоил статус ("в срок", "позже срока", "раньше срока" и т.п.) А потом сравнил с данными из другой таблицы и в результате построил третью таблицу в которой все сгруппировано например по участкам учета и посчитано общее кол-во обработанных, необработанных документов по каждому из статусов
perseverance overcomes all things
KaSS вне форума Ответить с цитированием
Старый 31.07.2013, 11:13   #6
KaSS
Пользователь
 
Аватар для KaSS
 
Регистрация: 30.07.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Так ведь написано:
"Вообще все операции выполняются в массивах."
Ну можно ещё словари/коллекции подключить.
Пробовала через словари, в них еще дольше, чем через массивы
perseverance overcomes all things
KaSS вне форума Ответить с цитированием
Старый 31.07.2013, 11:18   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не верю. Докажите
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.07.2013, 11:23   #8
KaSS
Пользователь
 
Аватар для KaSS
 
Регистрация: 30.07.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Не верю. Докажите
В данный момент у меня нет ни желания, ни времени снова писать программу сначала с использованием словаря а потом с использование массивов, но могу сказать что когда я это делала, одинаковые действия в таблице с 27 тыс строк через словарь выполнялись 2 мин, а через массивы 40 сек
perseverance overcomes all things
KaSS вне форума Ответить с цитированием
Старый 31.07.2013, 11:46   #9
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от KaSS Посмотреть сообщение
В данный момент у меня нет ни желания, ни времени снова писать программу сначала с использованием словаря а потом с использование массивов, но могу сказать что когда я это делала, одинаковые действия в таблице с 27 тыс строк через словарь выполнялись 2 мин, а через массивы 40 сек
Вы пример файла давайте, иначе это все бессмысленный спор.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 31.07.2013, 11:47   #10
KaSS
Пользователь
 
Аватар для KaSS
 
Регистрация: 30.07.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Чтобы что-то оптимизировать, нужно хотя бы посмотреть ЧТО оптимизировать, т.е. код.
В файле код. Я понимаю, что это не гениально, конечно, но может вы укажете на ошибки?

Res.txt
perseverance overcomes all things
KaSS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация Кащей Общие вопросы C/C++ 6 30.07.2013 09:55
Оптимизация bleeX Паскаль, Turbo Pascal, PascalABC.NET 3 12.04.2012 20:15
Оптимизация... MikeMNN Общие вопросы C/C++ 0 15.12.2010 17:40
оптимизация Terrance! Помощь студентам 8 24.09.2010 10:58
Оптимизация Viper1287 Операционные системы общие вопросы 7 13.09.2009 15:33