分享成果,随喜正能量】愚昧的人,常感到环境待他不公平,认为怀才不遇;聪明的人,常发现环境时时考验他,可以创造未来。。
在实际工作中要利用好VBA

这一专题,我们讲解利用VBA来预设某个任务自动运行。这讲的内容在VBA中也是比较有用的,可以完成诸如动画的效果,以及各种自己期望的任务在某个时间自动运行。我们主要是利用Application.OnTime来完成这种设置。
OnTime与Application.Wait方法非常相似,使用这两种方法,可以设计在特定时间运行某项任务(过程)。OnTime和Wait的一个主要区别是,对于Wait方法,Excel的操作将被挂起,但OnTime不会冻结你的计算机。运行OnTime语句后,可以继续使用Excel工作簿。
1 Application.OnTime 方法介绍
语法: Application.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
参数:
1) EarliestTime 必需 Variant 希望此过程运行的时间。有时 Excel 可能会在"最早时间"时忙于其他任务(例如任何宏正在运行)。一旦 Excel 准备好,程序将立即启动。
2) Procedure 必需 String 要运行的过程名。
3) LatestTime 可选 Variant 可以运行相应过程的最后时间。例如,如果将LatestTime设置为EarliestTime + 30, 并且 Microsoft Excel 在EarliestTime上未准备就绪、复制、剪切或查找模式, 因为另一个过程正在运行, 所以 Excel 将在第一个过程中等待30秒以完成第一个过程。如果 Excel 在30秒内未处于就绪模式, 则不会运行该过程。 如果省略此参数, Excel 将一直等待, 直到可以运行该过程。这个参数可以视为如果当前时间超过此时间,则程序将无法运行。
4)Schedule 可选 Variant 如果为True,则安排新的OnTime过程。 如果为 False,则清除以前设置的过程。默认值为True。
2 预设某个过程(宏)在15秒后运行
我们先用Application.OnTime方法来完成一个简单的预设:在用户点击按钮后15秒提示用户。我们先来看我给出的代码:
Sub mynzA()
Application.OnTime Now + TimeValue("00:00:15"), "mynz"
End Sub
Sub mynz()
MsgBox "您点击按钮后已经过去了15秒"
End Sub
代码的截图:

代码讲解:
Application.OnTime Now + TimeValue("00:00:15"), "mynz" 这句代码中“Now + TimeValue("00:00:15")”是指从现在开始到15秒后开始执行某个程序,执行什么程序呢?就是"mynz" 。
下面是代码的运行结果,当然代码是在点击后15秒出现的:

<待续>
本讲内容参考程序文件:应用008.xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

分享成果,随喜正能量】谣言不是张口无意,而是内心黑暗的反射。俗话说:“人受恶意之作弄,必作恶以回报。” ,所以,应戒之。。