|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.03.2011, 17:11 | #1 |
Пользователь
Регистрация: 28.02.2011
Сообщений: 42
|
Цикл и прогресс-бар
Здравствуйте увожаемые форумчане! Подскажите пожалуйста как сделать - в примере приведен код: имеется цикл на выполнение i операций с заполнением множества строк - дело в том что не могу правильно пояснить прогресс-бару в строке кода {pi.StartNewAction 0, 100, "Заполнение данными", , , i} что поставить вместо i, т.к. цикл выполняется не построчно, а поформульно (т.е. заполняется колонки формулами последовательно одна за другой, а не строки одна за другой) и прогресс-бар не понимает такого заполнения - было бы правильно ИМХО как то озадачить прогресс-бар - на выполнение i-той операции... вот в этом и загвоздка, не могу сформулировать его корректную работу?!... Может кто знает как это осуществить?
|
14.03.2011, 17:22 | #2 |
Пользователь
Регистрация: 28.02.2011
Сообщений: 42
|
кстати EducatedFool огромное спасибо за коды и направления мыслей
|
15.03.2011, 19:34 | #3 |
Пользователь
Регистрация: 28.02.2011
Сообщений: 42
|
Для наглядности выкладываю пример решения данной проблемы по "сложному" пути, а именно разделению поформульно на отдельные циклы с добавлением на каждую прогрессбара - результат: прогрессбар конечно заработал, но появляются отдельные проблемы - это мерцание прогрессбара (так как задержка заданная строкой кода убрана For n = 1 To 500: DoEvents: Next), еще одна сопутствующая проблема такого толкования кода - значительное увеличение продолжительности выполнения макроса "analiz"... трудно представить сколько займет времени использование параметра Data в циклах при увеличении количества строк начальных данных для расчета. Итог - решение для организации общего (одного) цикла для работы прогрессбара не найдено...
|
15.03.2011, 20:42 | #4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Это во много раз замедлит выполнение макроса... Вам не прогресс-бар надо добавлять, а оптимизировать макрос (переделав его почти полностью) Тогда он будет выполняться за доли секунды, и визуализация не потребуется. (надо формировать результаты в массиве, и потом одной строкой кода переносить массив формул на лист) Если так хочется прогресс-бар - то переставьте строки: Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 15.03.2011 в 20:45. |
|
17.03.2011, 18:13 | #5 |
Пользователь
Регистрация: 28.02.2011
Сообщений: 42
|
Спасибо Вам за ответ EducatedFool ) .. действительно помогло - то что нужно. Крутился - крутился рядом с этим решением а вот подставить конец запуска бара DoEvents не догодался. Я прошу не судить строго - ведь я искал миенно такого решения проблемы, а второе вложение - это "крик души"). Возможно также неуместной вообще эта затея в данном случае, но это наверное не совсем так.. я хотя и полный "новичок" в VBA программировании, но суть вобщем ловлю, просто я среде excel моим наработанным навыкам место не хватает - вот и начал "путь вперед". Про внутренние массивы я тоже подумал (ведь и мне понятно, что кодовое восприятие набора данных гараздо легче и быстрее обрабатывается в отличии от графического представления - согласен), я и намерен так поступить, но пока с "промежуточными данными", полезные для меня данные я хочу пока оставить визуализированными. Все это потому, что здесь выкладываю лишь маленькие кусочки одной так называеммой мной "программы" которую воплощаю в жизнь, а на этапе ее разработки данные постоянно мною меняются и трансформируются - визуально мне пока легче, потом все спрячу в массивы. А все таки про решение с циклом и баром отдельное спасибо - я дальше наверное уже соображу где его будет уместно применить и как его "навоять"
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"Независающий" прогресс-бар | KuznetsovKV | Общие вопросы Delphi | 3 | 22.04.2010 00:02 |
список и прогресс бар | Temka | Общие вопросы Delphi | 1 | 02.06.2009 12:20 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |