2013-10-22 240 views
0

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

我使用下面的代码片段如下:

WScript.Sleep 10800000 

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

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

回答

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应用程序将是有限的,至少部分地将不作为平时的工作。

我会做这种方式,通过在适当的时候建立和调用不同的子:

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

+0

非常感谢您的answer..it是有益的:)。 – user2862496

+0

我们如何才能在VB脚本中实现这种延迟? – user2862496

+0

这个提示是针对问题标签中提到的VBA。我不知道如何在VBScript中做... –

2

尝试这样:

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