VBA经典应用69例应用8:利用VBA,完成自动运行任务的预设
《VBA经典应用69例》(版权10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:VBA经典应用69例应用8:利用VBA,完成自动运行任务的预设
【分享成果,随喜正能量】137 人生艰难自不必去回避,人生艰难说多了也是白说,为什么,解决不了问题,说了也还是那么难。。
应用8 利用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秒出现的:
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: