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

《VBA经典应用69例》,是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容是教程的应用8:利用VBA,完成自动运行任务的预设

vba 操作工作表(完成自动运行任务的预设)(1)

这一专题,我们讲解利用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

代码的截图:

vba 操作工作表(完成自动运行任务的预设)(2)

代码讲解:

Application.OnTime Now TimeValue("00:00:15"), "mynz" 这句代码中“Now TimeValue("00:00:15")”是指从现在开始到15秒后开始执行某个程序,执行什么程序呢?就是"mynz" 。

下面是代码的运行结果,当然代码是在点击后15秒出现的:

vba 操作工作表(完成自动运行任务的预设)(3)

<待续>

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

vba 操作工作表(完成自动运行任务的预设)(4)

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

vba 操作工作表(完成自动运行任务的预设)(5)

vba 操作工作表(完成自动运行任务的预设)(6)

vba 操作工作表(完成自动运行任务的预设)(7)

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

,