✔ 最佳答案
時間單位 1 = 1 日
1 秒, 可用 1/24/60/60 表示
0.5秒, 可用 0.5/24/60/60
我剛寫以下的 Excel VBA 作測試:
Sub waitime()
Range("a1") = Now
Application.Wait (Now() + 0.5 / 24 / 60 / 60)
Range("a2") = Now
Application.Wait (Now() + 0.5 / 24 / 60 / 60)
Range("a3") = Now
Application.Wait (Now() + 0.5 / 24 / 60 / 60)
Range("a4") = Now
Application.Wait (Now() + 0.5 / 24 / 60 / 60)
Range("a5") = Now
Application.Wait (Now() + 0.5 / 24 / 60 / 60)
Range("a6") = Now
Application.Wait (Now() + 0.5 / 24 / 60 / 60)
Range("a7") = Now
End Sub
測試結果: 0.5完全沒有Delay, A1:A7 的時間完全一樣
改 0.6→全部Delay 1秒
改 2.5→全部Delay 2秒
改 2.6→全部Delay 3秒
如此類推, 小數值全部5捨6入
但唯一例外是 1.5, 是Delay 1秒/2秒/1秒/2秒/1秒/2秒, 即可做到 1.5秒 delay
反覆測試了無數次, 結果都是一樣。
我的總結是: 以上的VBA編寫方法是正確的, 但 VBA 及 EXCEL 本身是沒有時間系統, 它祇能應用上層(即MS Windows 的小時鐘)的時間系統。故VBA在此方面的指令的效果最終都要服從於MS Windows本身的時間性質, 無法問點解。