我有一个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的时间组件,但不是日期组件。这可能是为什么?
谢谢。
答案 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))