返回列表 上一主題 發帖

[發問] VBA計算執行時間顯示為x分x秒

回復 1# msmplay
Sub ex()
t0 = Time()
MsgBox "執行時間" & Format(CDate(Time()) - CDate(t0), "hh" & "時" & "mm" & "分" & "ss" & "秒")
End Sub

TOP

本帖最後由 jackyq 於 2018-3-12 18:33 編輯
回復  jackyq


   j大~~~~感謝,但測試ㄧ程式跑完結果為:0分4.1953125秒。秒數似乎還是沒辦法不要有小 ...
msmplay 發表於 2018-3-12 15:29



dim m%,s%
t0=timer  
s=int(timer-t0)
m=s\60
s=s-m*60
xxxxxxxxxxxxx(程式碼) '-------> Code 放這裡是錯誤的, 你一定永遠得到 0
msgbox "執行時間: " & m & " 分 " &  s & " 秒"

我一開始是在懷疑你所謂的都是 0
是如上原因 --> 你把你的 code 放錯位置了 

但是我想了想 , 你不可能那麼烏龍 , 會放錯位置
所以通通都是0的原因,  只剩唯1 可能 , 就是你的 code 雖然位置放對, 但是你的 code 耗時其實極短
短到連0.1 秒都不到  , 當然 最終整數秒結果還是 = 0 

例如
t0=timer  
For w= 1 to 1  ' ----> code 位置放對
Next
msgbox timer  - t0 '---> 我保證 "整數秒" 永遠 = 0

所以我才幫你保留下秒數到 小數點
'================
但是現在你卻說顯示 4.1953125秒 這已表明你先前之所以都得到0 , 確實是因為把 code 放錯位置了

TOP

回復 10# rouber590324
回復 7# jackyq
回復 4# Scott090


r大~~j大~~S大~~~抱歉抱歉,是我的錯,是我誤把程式碼放錯地方了,難怪執行起來都沒成功

目前使用三位大師的代碼測試都正常可以跑出 x 分 x秒了!!!真的非常感謝你們熱心又無私的幫忙喔~~~~~~~~再次感謝
*宅女一枚無誤*

TOP

回復 12# jackyq


    結果你突破盲腸了..............我真的那麼烏龍............
*宅女一枚無誤*

TOP

回復 14# msmplay


    round() 函數會四捨五入,不符合原始需求 (完全捨棄小數部分)

TOP

回復 1# msmplay
依jackyq大的程式碼
t0 = Timer
'========== your code begin
................
'========== your code end
t0 = Timer - t0
msgbox t0 \ 60 & "分  " & (t0 - t0 \ 60 * 60) & "秒"
改成MsgBox t0 \ 60 & "分  " & Round(t0 - (t0 \ 60) * 60, 0) & "秒"
就可達到

J.jpg (16.79 KB)

J.jpg

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題