Board logo

標題: 同時執行程式? [打印本頁]

作者: color790    時間: 2012-3-14 01:09     標題: 同時執行程式?

在網路上找到一個可以顯示在工作頁的計時器, 想跟自己寫的東西並行, 卻發現會一直在計時的程式跑, 請問.....這種方式可行嗎?
sub xx
...............
k = Timer / 86400 + 0.001 / 86400
Application.OnTime k, "yy"
................
end sub

計時器
Public StopIt As Boolean
Public ResetIt As Boolean
Public LastTime
Sub yy()
Dim StartTime, FinishTime, TotalTime, PauseTime
StopIt = False
ResetIt = False
If Range("a18") = 0 Then
  StartTime = Timer
  PauseTime = 0
  LastTime = 0
Else
  StartTime = 0
  PauseTime = Timer
End If
            
StartIt:
  DoEvents
  If StopIt = True Then
    LastTime = TotalTime
    Exit Sub
  Else
    FinishTime = Timer
    TotalTime = FinishTime - StartTime + LastTime - PauseTime
    TTime = TotalTime * 100
    Hm = TTime Mod 100
    TTime = TTime \ 100
    hh = TTime \ 3600
    TTime = TTime Mod 3600
    MM = TTime \ 60
    SS = TTime Mod 60
    Range("a18").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(Hm, "00")
    If ResetIt = True Then
      Range("a18") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
      LastTime = 0
      PauseTime = 0
      End
    End If
    GoTo StartIt
  End If
End Sub
作者: Hsieh    時間: 2012-3-14 08:18

回復 1# color790

http://forum.twbts.com/thread-37-1-1.html
作者: color790    時間: 2012-6-6 23:14

本帖最後由 color790 於 2012-6-7 19:28 編輯

Hi~ 版主
一開始研究了幾天, 都沒能成功, 荒廢了一段時間, 今天又再看一次, 居然不小心成功 ^^
但發現一點就是....
版主是利用每0.2秒加1的方式
我改成每0.1秒+0.1 (希望能變成Timer), 結果實際執行會慢秒, 後來就土法煉鋼, 得到一個感覺不會慢秒或快秒的值,
請問
1. 這個值是依照電腦速度的不同, 而改變還是 ????
2. 有方法可以解決嗎(土法煉鋼不好=.=")?? 我是利用timer-起始值 但都不會動!! (已解決)
' s 在另一個程序, 為起始值 s=timer
Sub Asub()
With Worksheets("AutoTimer").Range("a1")
.Value = (Timer - s) / 86400
End With
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)