VBA Application.OnTime在凌晨12点附近失控

时间:2016-10-27 06:41:18

标签: excel vba excel-vba

我有一个VBA程序,每隔5分钟将单元格从一个工作簿复制并粘贴到另一个工作簿,每天运行22小时,包括使用Application.OnTime循环的午夜。

每天晚上11点55分,我的Excel变得混乱,并且每秒都疯狂地复制和粘贴。晚上11:55会使我的下一次预定更新时间是早上12点,这可能会导致这种情况发生。有人对此问题有任何解决方法吗?

导致问题的行是:

ThisWorkbook.Worksheets("Sheet1").Range("K5") = TimeSerial(Hour(Now), Application.WorksheetFunction.Floor(Minute(Time), 5) + 5, 0)

Application.OnTime EarliestTime:=ThisWorkbook.Worksheets("Sheet1").Range("K5"), Procedure:="dataextract", Schedule:=True

所以基本上我只有Application.OnTime的时间组件,但不是日期组件。这可能是为什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试通过替换此行来将日期添加到最早的时间:

ThisWorkbook.Worksheets("Sheet1") _
    .Range("K5") = TimeSerial(Hour(Now), _
    Application.WorksheetFunction.Floor(Minute(Time), 5) + 5, 0)

这一行:

ThisWorkbook.Worksheets("Sheet1") _
    .Range("K5") = Now + TimeSerial(0, _
    WorksheetFunction.Floor(Minute(Now), 5) + 5 - Minute(Now), _
    1 - Second(Now))