在一个小时的特定时间运行宏

时间:2018-08-19 06:41:46

标签: excel vba

我有一个VBA脚本,该脚本具有一定的时间条件。

  1. 它需要检查当前时间
  2. 如果当前时间早于09:00:00 AM,则需要在09:00:00运行宏
  3. 激活后,宏需要每5分钟运行一次
  4. 如果当前时间晚于09:00:00 AM,则需要以5分钟的x倍运行。例如09:05:00 AM,09:25:00 AM或09:35:00 A

我已将以下代码写入地址(1)和(2):

Sub Time()
Dim tm As Date
tm = TimeValue("09:00:00 AM")
If tm <= TimeValue(Now) Then
Application.OnTime TimeValue("09:00:00"), "Run_Macro"
Else
'Do something
End If
End Sub

对于(3),以下代码可满足:

Sub Run_Macro_1()
Application.OnTime Now + TimeValue("00:5:00"), "Run_Macro_2"
End Sub

但是,(4)是我苦苦挣扎的部分。

我如何确保脚本“等待”直到时钟5分钟翻倍?例如,如果当前是09:13:14,则脚本需要等到09:15:00才能运行。

谢谢

1 个答案:

答案 0 :(得分:-1)

我认为您正在寻找Application.Wait Method (Excel)函数。它会暂停正在运行的宏,直到指定的时间为止。提供的链接上有示例,看起来很简单。

绝对等待时间:

Application.Wait "09:00:00"

和亲戚:

newHour = Hour(Now()) 
newMinute = Minute(Now()) + 5 
newSecond = Second(Now())
waitTime = TimeSerial(newHour, newMinute, newSecond) 
Application.Wait waitTime