返回列表 上一主題 發帖

時間資料之統計

回復 1# b9208
如附檔.
D1-ans.zip (12.37 KB)
須留意的是程式中將 自 00:00 ~ 09:59 (含) 間的時間都視為 第二天.

TOP

回復  luhpro
請教下式中2.9999 代表為何
Cells(16, 2) = 2.9999
b9208 發表於 2011-11-11 14:57

因為儲存格的時間資料是用 1 以下的小數來表示,
這可以用先在儲存格中輸入時間,
再將該儲存格格式改為 "G/通用格式" 即可得知.

而若先輸入 1(或比1大的數字) 再改為時間格式,
則會發現內容變成有日期(例如輸入 24:00 則會自動轉換成 1900/1/1 00:00:00)的情形.

在首篇本例檔案中會出現 "跨日" 的情形,
所以 Cells(16, 2) 的初設極大數(因為此格要放最小時間, 所以其初值必須保證比所有需要比較的時間資料都大)不能只大於 1,
原先來說若以 10:00 為隔日最大時間來計算,
則僅須設為大於 1.416 即可,
我設為 2.9999 只是個人習慣總是會想多預留一些餘裕罷了.

而也因為若數字大於 1 時會多出現非必要的日期資訊(有影響之後若需比較或計算的疑慮),
所以底下多了一段去掉整數部分以確保只留下時間資料(純小數)的程式.

TOP

回復 6# b9208
  1.   For Each vValue In Range("B11:D18")
  2.     If vValue >= 1 Then
  3.       Cells(vValue.Row, vValue.Column) = vValue - Int(vValue)
  4.     End If
  5.   Next vValue
複製代碼

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題