Excel VBA中的定时警报
我制作了一个日历来跟踪Excel 2003中的任务和类似项目。我需要做的是通过VBA设置一个计时器。 像这样的东西:
run_in_x_secs ( timetowait, function to exec)
有没有办法在Excel VBA中做到这一点,或者我应该尝试find一个警报,通过命令行运行并从VBA运行。
你会怎么做?
这应该做的伎俩:
Public Sub RunSubInXSeconds(secondsToWait As Long, nameOfFunction As String) Application.OnTime Now + secondsToWait/(24# * 60# * 60#), nameOfFunction End Sub
尽pipe你必须小心OnTime,特别是如果你打算将它设置为等待很长一段时间…例如,如果您在计时器到期之前closures工作簿并执行Sub,那么您最终可能会打开自己的工作簿来运行它。 混淆,如果你不期望它!
Public Sub tt() timerset = TimeValue("01:00:00") 'the time you want Application.OnTime timerset, "myfun" End Sub Sub myfun() 'do whatever you want End Sub
另外两个选项:
'Option 1 Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) Sub Sleep() Sleep 1000 'whait 1 second End Sub 'Option 2 Sub MyWaitMacro() newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 3 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime End Sub