【理解】如何定时运行程序

以下这个程序非常简单来自书本《Excel2010 VBA 入门与提高》第三章疑难58。这个case很容易让初学者觉得和递归有关,其实不然。具体见下。

程序运行效果就是,按start以后A2跳出当前时间,且开始一秒一秒地动。再按end A2就会停下来。


上代码前,需要先放一下Application.OnTime的prototype: Application.OnTime(EarliestTime, Procedure, LatestTime,Schedule)


Procedure对应的位置放入某个要启动的过程(程序)。

EarliestTime对应的位置是这个Procedure要启动的时间。

LatestTime是这个程序如果在EarliestTime没启动,那么Procedure最晚被启动的时间。过了这个时间,程序不会再被启动。

Schedule是逻辑值,为真就是创建某个程序的定时器,为假就是取消EarliestTime所创建的那个定时器。


代码如下,描述也放在了里面:

Dim dNextTime As Date

Sub StartTimer()
    dNextTime = DateAdd("s", 1, Now)  '设定了earlist time。
    Application.OnTime dNextTime, "StartTimer"   '初看很像递归,其实它要在下一秒才开呢!!!程序去到下一行代码完全不用一秒钟!!!
    
    Cells(2, 1).Value = Now
    
End Sub

Sub StopTimer()
    Application.OnTime dNextTime, Procedure:="StartTimer", Schedule:=False
End Sub



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取啥都被占用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值