VBScript中的时间延迟

时间:2013-10-22 12:12:13

标签: vbscript timedelay

我想在我的VB脚本代码中的两个连续行之间引入3小时的延迟。

我正在使用以下代码段:

WScript.Sleep 10800000

但我认为代码停止了很长时间,超过3个小时。我使用10800000,因为我的读取时间以毫秒为单位。

请让我知道我的错误以及实现这一目标的正确方法。 谢谢!

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

timeout = DateAdd("h", 3, Now)
Do Until Now > timeout
  WScript.Sleep 200
Loop

答案 1 :(得分:1)

重要提供此解决方案是因为问题在开头标记为

我会给你不同的选择。我想你现在有类似的东西:

Sub MyCurrentSub()
    Dim A
    A = 10
    'wait 3 hour here and...
    '...after 3 hours do other part of the sub
    MsbBox A
End Sub

在等待时间内,即使您使用不同的等待选项(如Do...Loop),您的Excel应用程序也会受到限制,至少部分不会像往常一样工作。

我会这样做,通过在适当的时刻创建和调用不同的Sub:

Public A
Sub MyNewSub_1()
    A = 10
    Appication.OnTime Now + TimeValue("03:00:00"), "MyNewSub_2"
End Sub
'now you can use your Excel as usually...
Sub MyNewSub_2()
    MsgBox A
End Sub

您将获得相同的结果,Excell将在等待期间免费供您使用3小时。您需要记住的唯一想法是 - 不要退出应用程序。如果您退出Excel,它将“忘记”拨打MyNewSub_2