2017-04-06 90 views
0

我有一個VBA腳本,它以y時間步長從0到x進行計數,並將此值放在一個單元中。通過使用偏移公式,我可以使用此計數從另一張紙張讀取數據,然後用它來動畫xy散點圖。隨時間變化的計數器

使用的代碼是。

Sub Counter()      'Name and start of script 

For j = 0 To 200 Step 1   'Start of For loop setting j to equal a count from 0 to 2400 
    Range("A1").Value = j   'Place the value of j into cell A1 
    For c = 1 To 2500000   'Set a new variable called c and count from 0 to a value, this acts to slow down j's count else the animation would not be very long. Increasing this number will slow down the simulation and decreasing will speed it up 
    Next       'Move onto the next event 
    DoEvents      'Tells excel to do the For loop 
Next        'Move onto the next event 

End Sub 

要使動畫圖形不能快速運行,需要浪費時間。這非常依賴於電腦的速度。 (舊計算機得到一個較小的計數)

我想實現的是能夠在一段時間內計數從零到秒,因爲我的數據通常在0.1秒內生成0到20秒間隔。

因此,動畫將運行與計算數據相同的時間量。

+0

聽起來像睡覺的候選人 – Winterknell

回答

0

在模塊的頂部:

#If VBA7 Then 
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal milliseconds As LongPtr) 
#Else 
    Public Declare Sub Sleep Lib "kernel32" (ByVal milliseconds as Long) 
#End If 

然後:

Sub Counter() 
    For j = 0 To 200 
     Range("A1").Value = j 
     Sleep 100 ' or whatever - in milliseconds 
     DoEvents 
    Next 
End Sub 

調整毫秒,直到定時是正確的。

+0

謝謝,這有幫助! – Nemo51