2013-10-22 44 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