- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
4#
發表於 2015-5-7 05:23
| 只看該作者
回復 3# laieven
不是的喔.
上面說過 :
若以一個數字來表示時間值,整數部分表示日期,小數部分則表示時間
在原式 tr = Int((nowTime - startTime) * 288) + 2 '每差 300 秒就換一列 中,
tr 會每 300 秒就加 1(也就是 每差 300 秒就換一列 的意思),
癥結就在於 "小數部分則表示時間" 這一點,
當時間差的小數部分乘上 288 接著再取整數之後就會出現這樣的結果.
你可以執行以下程式看看結果:- Sub nn()
- Dim tr&
- Dim startTime As Date
-
- startTime = Now
- Do While tr <= 20
- tr = Int((Now - startTime) * 28800) + 2 '每差 3 秒就換一列
- Cells(tr, 1) = tr
- Loop
- End Sub
複製代碼 當我們對於程式某些部分有疑慮的時候,
最簡單的方式就是用 F8 (單步模式) Try Try 看,
我最常用的方式是先在 "即時運算" 視窗中用 ? 來確認下一列相關變數會變成甚麼值,
或是下一列想要做甚麼事, (例如若是 Cells 或 Range 則確認要作用的儲存格是哪一個<些>)
再按一次 F8 確認結果是否與我所預期的相同. |
|