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