2014-09-19 72 views
0

當我運行下面的代碼(test1),我得到不同的結果,幾乎總是在2.5秒左右 - 很少是3秒。如果電腦被別的東西佔用,我可以理解它高於3秒,但少於3秒是沒有意義的。我已經用xl2003和xl2010嘗試過了,結果相似。我希望有人能向我解釋這一點。Application.Ontime給出不準確的結果

Option Explicit 

Dim t As Double 

Sub test1() 
    Debug.Print Now 
    Application.OnTime Now + TimeValue("00:00:03"), "test2", , True 
    ' t = Timer 
End Sub 

Sub test2() 
    Debug.Print Now 
    ' Debug.Print Timer - t 
End Sub 
+0

我改變了我的代碼,現在我似乎得到了準確的結果。也許Timer之前造成了不一致。 – DaveU 2014-09-19 23:58:26

回答

0

Now()Timer似乎異步更新它們的值。在一些快速測試中,我得到約0到1秒的差異。

正如你發現你應該堅持一個時間源。另外,OnTime只能以1秒的增量進行安排。

+0

對不起,我的評論並不清楚。在我的第一篇文章中,我獨家使用了Timer,並獲得了不同的結果。在編輯過的代碼中,我已經註釋了計時器行,現在正在使用Now來獲取流逝的時間(通過對2「Now」進行精神減法)。所以Timer&Now是專門用於 - 但後者我總是有一致的3秒結果。這導致我想知道Timer的準確性。 – DaveU 2014-09-20 01:51:20