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秒钟。最后,我的时间如下。

因此,像这样,我们可以暂停代码执行指定的时间。