我有一个需要在每小时更改时运行的VBA子程序。所以在7:00,8:00等...现在我可以让它每60分钟运行一次,但为了让它在一小时内运行,操作员必须在一小时内完全启动计时器。我使用的代码如下:
Public RunWhen As Double
Public Const cRunIntervalSeconds = 3600
Public Const cRunWhat = "transfer"
-----------------------------------------------------------------------
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
Schedule:=True
End Sub
我一直试图找到一种方法让它在一小时内完全无法运行一段时间,我看起来每个地方只是告诉我要完成我已经做过的事情,并确保我完全开始小时。
例如:如果操作员在7:10之前没有到达工作站并点击运行代码的按钮,我仍然希望它在8:00然后9:00执行名为“transfer”的子程序。等等。
您如何建议我修改或添加此代码以使其完成我想要做的事情?谢谢你的帮助!
答案 0 :(得分:2)
根据要求,我最喜欢的公式为答案:
RunWhen = Int(24 * Now + 1) / 24
因为:它很短,应该是100%自我解释:D