Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

ProgressBar - учет шага.

Автор Marat Ta, 27.03.2021, 08:13:22

« назад - далее »

Marat Ta

https://www.excel-vba.ru/chto-umeet-excel/otobrazit-process-vypolneniya

Можно ли добавить в модуль опцию шага выполнения?
У меня 800000 строк, если на каждой строке вызывать обновление статуса выполнения, это сильно замедляет процесс.

Я ставлю вызов процедуры при достижении кратной  500 строки. И чтобы инфо в процедуре рассчитывала % по этому шагу.

Дмитрий Щербаков(The_Prist)

1. Какое отношение это имеет к бесплатным надстройкам на сайте? ProgressBar - это просто показанное в одной из статей решение. А здесь обсуждаются именно надстройки - читайте внимательнее описание и правила раздела. Тему перенес.
2.
По сути можно, но сейчас некогда и не очень хочется.
Переделывать полностью под заданный шаг(чтобы не было проверок и процесс выполнения отображался только с заданным шагом) - вижу несколько утомительным и неинтересным для себя занятием(надо учесть кратность конечного результата, кратность шага, кол-во шагов).
Проще сделать одну проверку - текущего значения некоторой кратности:
If (lr Mod 500) = 0 Then
'показываем ProgressBar
end if

Т.к. эту проверку все равно придется делать, ведь шаг обработки не меняется, а значит надо будет проверять счетчик, чтобы понять выводить ли информацию в статус-бар.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Marat Ta

Спасибо.
Пои каждом вызове процедуры  Public переменная Счетчик меняется на +1
Значит сейчас  при каждом вызове нужно просто менять ее на +шаг и вызывать при условии остаток деления на шаг =0 (как у вас в сообщении).

Marat Ta

#3
Так и не смог разобраться. Простым прибавлением dblStep на заданный шаг - здесь не получится.

Взял за основу пример из учебника John Walkenbach "Excel 2007 Power Programming with VBA".
Визуально то же самое и намного проще.

Яндекс.Метрика Рейтинг@Mail.ru