请教:建议金字塔增加Application.OnTime功能,方便VBA程序降低系统消耗,每隔一定时间运行一次软件。目前金字塔只有Application.setTimer
Sub macro_timer()
'Tells Excel when to next run the macro.
Application.OnTime Now + TimeValue("00:00:1"), "my_macro"
End Sub
Sub my_macro()
'Macro code that you want to run.
MsgBox "This is my sample macro output."
'Calls the timer macro so it can be run again at the next interval.
Call macro_timer
End Sub
区别是:计时起点不一样。
计时器是从程序启动开始计时,比如计时器是5秒,然后执行一次代码,如果这段代码运行的时间是3秒,下一次执行就是2秒以后。而Application.OnTime函数,Application.OnTime Now + TimeValue("00:00:05"), "my_macro" 设定的是在这段代码完成后,比如在目前时间基础上增加5秒钟,5秒到了之后再开始运行代码。
计时器是一开始程序就运行着,始终没有停止过。而Application.OnTime函数是到了时间才运行。我的理解是这样的,不知是否正确。
代码的执行时间你是无法预计的,你可以设置一个全局变量,初始值设为0,在代码进入的地方,设置为1,运行完之后设置为0,在ontimer事件中,
判断这个变量是否为0,是就进入循环,不是就不进入,这样就可以避免上一次的操作还没有完成,下一次事件又进入了。
______________________________
QQ:253675026 wechat:guotx-