我有一个工作正常的Excel倒计时宏,但是如果在第一个版本运行到零之前第二次调用它,我需要能够退出例程...现在,当用户在时间为0时创建交易时倒计时,它开始计时,但第一个调用(仍在倒计时)不会退出,计数器重置,然后继续倒数 2,如果再次发生这种情况,它会重置并倒数 3,所以显然是之前的调用仍在运行。我需要一种方法来确定较早的倒计时例程是否处于活动状态,并在启动另一次调用之前退出这些例程。
我打算尝试将计数器的当前值传递到例程(作为变量),然后检查它是否大于运行的值,但由于那仍然是 AM51,我认为这不起作用,或者它可能会立即退出对例程的任何调用。
如有任何帮助,我们将不胜感激。这是例程(AM51 具有初始定时器值,该值在调用 StartClock 之前由另一个子例程设置)。
子启动时钟()
将时钟调暗为日期
时钟 = 现在 + TimeValue("00:00:01")
如果范围(“AM51”).Value = 0 那么
Exit Sub
结束如果
如果范围(“AM51”).值< 7 Then
Beep
结束如果
范围(“AM51”)=范围(“AM51”)- 1
Application.OnTime 时钟,“StartClock”
结束子
Application.OnTime()
将 Schedule
作为第四个参数。如果您将其设置为 False
,则会取消计时器。棘手的部分是跟踪最初用于启动计时器的 Clock
参数。