首页 > 解决方案 > 从循环调用 VBA 中的倒数计时器

问题描述

我想从子例程中为 FOR LOOP 的每次迭代调用一个倒数计时器;其中计时器的持续时间基于它从循环循环通过的范围内的单元格中获取的值。

例如,单元格 A1:A5 的值分别为 15、15、20、20、30。我想运行一个基本上以 A1 开头的宏,捕获 15,然后启动倒数计时器 15 秒,当它达到 0 时,它移动到 A2 并重复该过程。

它没有按预期工作。

当我执行主例程以在上述范围内循环并为范围内的每个单元格调用 Start_Timer 例程(依次调用 Next_Moment 例程直到计时器达到零并退出子)时,它似乎完美地在范围内循环并选择持续时间。

但是当调用 Start_Timer 例程时,它不会执行计时器倒计时,直到循环完全循环之后并且当它执行时计时器不会以秒为间隔减少。

但是,如果我在循环之外调用 Start_Timer,则计时器可以正常工作,但它显然只运行倒数计时器一次。

有任何想法吗?

我在调用 Start_Timer 之前和之后都尝试过使用 DoEvents ,但什么也没有。

标签: vbaloopscountdowntimersubroutine

解决方案


没关系。我想出了如何让它做我需要做的事情。现在我需要弄清楚如何通过单击不同的按钮来中断/暂停计时器。


推荐阅读