【问题标题】:Trying to automate excel vba code for every one hour. I tried giving wait time, but after a day or so, it starts lagging尝试每隔一小时自动化 excel vba 代码。我尝试给等待时间,但一天左右后,它开始滞后
【发布时间】:2016-05-08 00:32:01
【问题描述】:

我正在尝试每隔一小时自动执行一次 excel vba 代码。我试着给等待时间,但一天左右后,它开始滞后。我希望我的代码在每天每小时的第 0 分钟运行一次。任何帮助表示赞赏。谢谢

Sub timer()

        Application.OnTime Now + TimeValue("00:45:00"), "Button1_Click"

End Sub

Sub Button1_Click()

    Call SftpPut

End Sub

Sub SftpPut()

    '--takes here approximately 10-15mins to run few other things and then calls timer.
    Call timer

End Sub

【问题讨论】:

  • 在 windows 中尝试 vbscript 与计划任务以每 45 分钟启动一次脚本。在那里你可以做SftpPut()

标签: vba excel


【解决方案1】:

诀窍是让Application.Ontime 在下一小时开始时运行,而不是猜测什么时候。这个计算是这样做的:

 Application.OnTime CDate(Int(DateAdd("h",1,Now())*24)/24), "Button1_Click"

或者,您可以使用三个 DateAdd 函数计算下一小时:

Application.OnTime DateAdd("s", -Second(Now()), DateAdd("n", -Minute(Now()), DateAdd("h", 1, Now()))), "Button1_Click"

【讨论】:

  • 请注意,如果在当前小时的第 30 分钟之后进行,第一次计算返回 +2 小时
  • @user3598756,哎呀,我提出了一个草稿版本。应该是Int。我会解决的,谢谢!
猜你喜欢
  • 2021-09-11
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多