Вызов таймера обратного отсчета в VBA из цикла

#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. Это не ответ. Пожалуйста, удалите его.