VBA暂停|使用睡眠和等待功能暂停VBA代码
暂停运行中的VBA代码
VBA暂停 用于暂停执行指定时间的代码,以及暂停VBA中的代码,我们使用application.wait方法。
在执行某项操作之后构建大型VBA项目时,我们可能需要等待一段时间才能执行其他任务。在这种情况下,我们如何暂停宏代码来执行任务?我们可以使用两个功能将VBA代码暂停指定的时间,这两个功能是“等待”和“睡眠”。
如何使用等待方法暂停代码?
“等待”是我们在VBA中使用的功能,用于使宏运行特定的时间。通过应用此功能,我们需要提到直到什么时候我们的代码应该等待。
您可以在此处下载此VBA暂停Excel模板– VBA暂停Excel模板例如,如果您在13:00:00执行代码(如果您提供的时间为“ 13:15:00”),则它将使宏运行15分钟。
现在,看一下VBA中WAIT函数的参数。
在时间争论中,我们需要提及我们的代码应该在什么时候暂停或等待。
例如,查看下面的VBA代码。
代码:
Sub Pause_Example1()Range(“ A1”)。Value =“ Hello” Range(“ A2”)。Value =“ Welcome” Application.Wait(“ 13:15:00”)Range(“ A3”)。Value =“到VBA“结束子
请记住,在运行此代码时,我的系统时间是13:00:00,一旦我运行该代码,它将执行前两行,即
Range(“ A1”)。Value =“ Hello”&Range(“ A2”)。Value =“ Welcome”
但是,如果您查看下一行,则显示为Application.Wait(“ 13:15:00”),因此在执行了这些行的任务后,我的宏将暂停15分钟,即从13:00:00起,它将等待直到我的系统时间到达13:15:01。
一旦我的系统时间到达该时间,它将执行剩余的代码行。
Range(“ A3”)。Value =“ To VBA”
但是,这不是练习暂停代码的最佳方法,假设您在不同时间运行代码,那么我们需要将NOW VBA函数与TIME VALUE函数一起使用。
现在 函数会根据我们正在使用的系统返回当前日期和时间。
时间值 该功能可保留时间从00:00:00到23:59:29。
好的,假设我们每次运行代码都需要将代码暂停10分钟,那么我们可以使用以下代码。
代码:
Sub Pause_Example1()Range(“ A1”)。Value =“ Hello” Range(“ A2”)。Value =“ Welcome” Application.Wait(Now()+ TimeValue(“ 00:00:10”))Range(“ A3“)。Value =” To VBA“结束子
这类似于先前的代码,但唯一的区别是我们添加了NOW&TIME VALUE函数。
每当我们运行此代码时,它将暂停或暂停执行10分钟。
如何使用休眠方法暂停VBA代码?
睡眠是VBA中的一项复杂功能,因为它不是内置功能。由于它不是内置功能,因此无法使用,因此需要在模块顶部添加以下代码。
代码:
#如果VBA7则公共声明PtrSafe子睡眠库“ kernel32”(ByVal dwMilliseconds作为LongPtr)'对于64位系统#其他公共声明子睡眠库“ kernel32”(ByVal dwMilliseconds作为Long)#结束如果'对于'32位系统
您只需要复制上面的代码并将其粘贴到模块顶部即可。
之所以需要添加上面的代码,是因为SLEEP是Windows DLL文件中提供的VBA函数,因此我们需要在开始子过程之前声明名称。
好的,现在让我们看一下SLEEP函数的示例。
代码:
Sub Pause_Example2()Dim StartTime as String Dim EndTime As String StartTime =时间MsgBox StartTime睡眠(10000)EndTime =时间MsgBox EndTime End Sub
首先,我们将两个变量声明为String。
昏暗的开始时间作为字符串昏暗的结束时间作为字符串
然后,我们将TIME excel函数分配给StartTime变量。 TIME函数根据系统返回当前时间。
StartTime =时间
然后,我们将其分配给显示在消息框中。
MsgBox StartTime
然后我将SLEEP功能应用为Sleep(10000)。
这里10000是毫秒,等于VBA中的10秒。
然后,最后,我为变量分配了另一个TIME函数 时间结束.
现在我再次编写了代码以显示时间。
结束时间=时间
这将显示开始时间和结束时间之间的时差。
现在,我将执行代码并查看开始时间。
当我执行代码时,我的系统时间是13:40:48,现在我的代码将休眠10秒钟。最后,我的时间如下。
因此,像这样,我们可以暂停代码执行指定的时间。