Код |
---|
Sub Размножить() Dim lngCalc As Long Dim n& n = Val(InputBox("n =")) Application.ScreenUpdating = False lngCalc = Application.Calculation Application.Calculation = xlCalculationManual Application.DisplayAlerts = False Range("g1:h1").Copy Range("g2:h2").Resize(1 * n) Application.ScreenUpdating = True Application.Calculation = lngCalc Application.DisplayAlerts = True MsgBox "Готово!", vbInformation End Sub |
Как правильно внедрить в код макроса прогресс бар
05.04.2018 12:18:39
В этот никак. Смысла нет. Прогресс-бары внедряются в циклы, а у Вас только одна рабочая строка.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
05.04.2018 12:20:14
Дмитрий Щербаков, можно написать и через цикл, но тогда увеличится время работы макроса.
|
|
|
|
05.04.2018 12:23:10
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|
|
|
05.04.2018 12:25:45
какой прогрессбар вы рассчитываете увидеть для этого макроса?)
|
|
|
|
05.04.2018 12:26:10
|
|
|
|
05.04.2018 12:27:55
Dima S, хотя бы, количество пройденных строк.
|
|
|
|
05.04.2018 12:29:13
"Все гениальное просто, а все простое гениально!!!"
|
|||
|
|
05.04.2018 12:30:14
Юрий М, операция повторяется до 1 000 000 раз.
|
|
|
|
05.04.2018 12:31:10
Не вижу этого в коде.
|
|
|
|
05.04.2018 12:32:15
Извините великодушно, а какой смысл в прогрессбаре после этой инструкции:
Кому решение нужно - тот пример и рисует.
|
|||
|
|
05.04.2018 12:33:56
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||
|
|
05.04.2018 12:34:30
Пытливый, в исходном коде она нужна, с прогресс баром нет, к чему этот вопрос?
|
|
|
|
05.04.2018 12:36:33
|
|
|
|
05.04.2018 12:37:41
|
|||
|
|
05.04.2018 12:37:52
kolevchuk,чтобы увидеть какая строка обрабатывается и для прогресс-бара нужен цикл.
|
|
|
|
05.04.2018 12:40:49
для того чтобы показать прогресс - нужно знать время выполнения операции или количество циклов.
тогда текущий прогресс = пройдено времени(циклов)/общее время(к-во циклов)*100%. в вашем случае если говорить о времени - общее неизвестно, можете отобразить только пройденное время. если о количестве скопированных строк - неизвестно сколько уже скопировано в данный момент. Далее у вас используется Application.ScreenUpdating, что не даст обновить информацию о статусе, а если отключить - замедлит выполнение операции. Короче - в вашем случае статусбар не имеет смысла. Разве что проведите тестовое копирование, замерьте время и перед началом сделайте
Изменено: |
|
|
|
05.04.2018 12:41:03
Anchoret, посоветуйте, пожалуйста, как это сделать в цикле.
|
|
|
|
05.04.2018 12:42:33
А это уже вопрос не по теме.
|
|
|
|
05.04.2018 12:45:09
Господа — вы должны
Изменено:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|||
|
|
05.04.2018 12:46:29
Зачем зацикливать один и тот же код, в чем идея? Посмотреть как работает прогресс бар? Возьмите Уокенбаха, сделайте как в книге написано и наслаждайтесь
"Все гениальное просто, а все простое гениально!!!"
|
|
|
|
05.04.2018 13:15:00
Вот Вам примеры - выбирайте:
Изменено:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
||||
|
|
|||