应用程序准时从晚上 11:55 到凌晨 12:00 出现问题 - 中断循环 - VBA



我有一个宏,从下午 5:00 到第二天下午 4:00 全天循环。该宏运行 2 个循环,每个循环每 5 分钟拍摄一次数据快照。但是,当它到达晚上 11:55 时,我一直注意到一个问题。在 11:55,它将陷入更快的循环并开始每秒拍摄快照,直到凌晨 12:00,然后恢复正常行为。其中一个循环的最后一个快照是晚上 11:53,所以下一个快照应该是 11:58,但它一直等到凌晨 12:00 才拍摄下一个快照,然后行为正常。

因此,一个循环在11:55 拍摄快照,下一个循环计划在凌晨 12:00 开始香蕉,每秒拍摄快照,直到午夜。

另一个循环在 11:53 拍摄快照并计划下一个循环在 11:58,等待 7 分钟而不是编程的 5 分钟,并在午夜恢复正常活动。

我对 application.ontime 方法相当陌生,不确定是否有某些东西会导致它在午夜运行时出错。任何想法将不胜感激。

这是循环之一。它称为"cashHighLow",最后指向"重复HighLow"。

Sub repeatHighLow()
Dim spreads As Worksheet
Set spreads = ThisWorkbook.Worksheets("Spreads")
interval = spreads.Range("c127").Value
starttime = Time + TimeValue("00:" & interval & ":00")
stop1 = TimeValue("16:00:00")
stop2 = TimeValue("18:59:00")
If starttime < stop1 Or starttime > stop2 Then Application.OnTime starttime,         "cashHighlow"

结束子

以下是启动计划循环的初始调用:

Sub runSaves()
datecheck = Weekday(Date)
If datecheck = 6 Or datecheck = 7 Then Application.OnTime TimeValue("16:50:00"), "runSaves"
Application.OnTime TimeValue("17:23:00"), "repeatFutures"
Application.OnTime TimeValue("18:55:00"), "repeatHighLow"
Application.OnTime TimeValue("7:00:00"), "saveMidFutureClose"
Application.OnTime TimeValue("7:00:01"), "saveOverNightHighLow"
Application.OnTime TimeValue("7:00:02"), "midCashClose"
Application.OnTime TimeValue("7:00:03"), "saveCashOpen"
Application.OnTime TimeValue("7:00:04"), "saveFutureOpen"
Application.OnTime TimeValue("16:30:00"), "saveCashHighLow"
Application.OnTime TimeValue("16:30:01"), "saveFutureHighLow"
Application.OnTime TimeValue("16:30:02"), "saveFutureClose"
Application.OnTime TimeValue("16:30:03"), "saveCashClose"
Application.OnTime TimeValue("16:30:10"), "clearSnaps"
Application.OnTime TimeValue("16:50:00"), "runSaves"

End Sub

我自己通过简单地避免午夜时间解决了这个问题。拉入的数据或 Excel 处理从 23:59:59 到 00:00:00 的方式存在一些问题。所以我说如果时间在这个窗口内,那么再加一分钟就可以跳过这个数据点。

最新更新