#vba #loops #countdowntimer #subroutine
#vba #циклы #countdowntimer #подпрограмма
Вопрос:
Я хочу вызвать таймер обратного отсчета из подпрограммы для каждой итерации ЦИКЛА FOR; где длительность таймера основана на значении, которое он получает из ячейки в диапазоне, через который проходит цикл.
Например, ячейки A1: A5 имеют значения 15,15,20,20,30 соответственно. Я хочу запустить макрос, который в основном начинается с A1, захватывает 15, а затем запускает таймер обратного отсчета на 15 секунд, и когда он достигает 0, он переходит к A2 и повторяет процесс.
он работает не так, как предполагалось.
Когда я выполняю основную процедуру для циклического прохождения по вышеупомянутому диапазону и вызываю процедуру Start_Timer (которая, в свою очередь, вызывает процедуру Next_Moment, пока таймер не достигнет нуля и не завершит работу) для каждой ячейки в диапазоне, кажется, что она идеально проходит через диапазон и набирает длительность.
но когда вызывается процедура Start_Timer, она не выполняет обратный отсчет таймера до тех пор, пока цикл не будет пройден полностью, и когда это происходит, таймер не уменьшается с интервалом в секунду.
Однако, если я помещаю вызов Start_Timer вне цикла, таймер работает правильно, но он, очевидно, запускает таймер обратного отсчета только один раз.
Есть идеи?
Я пробовал использовать DoEvents до и после вызова Start_Timer и ничего.
Комментарии:
1. подумайте о добавлении некоторого кода. также избегайте благодарности и подобных любезностей. если кто-то помогает вам на этом форуме, он уже это делает.
2. Пожалуйста, никогда не используйте
DoEvents
.
Ответ №1:
Неважно, все. Я понял, как заставить его делать то, что мне нужно. Теперь мне нужно выяснить, как прервать / приостановить таймер, нажав другую кнопку.
Комментарии:
1. Это не ответ. Пожалуйста, удалите его.