✔ 最佳答案
算時間差不用VBA,公式即可
在D2輸入公式
=IF(HOUR(C2)=0,IF(HOUR(B2)=0,C2-B2,"24:00"-B2+C2),C2-B2)
然後複製下來即OK
加總也不難,用SUMIF
例如
=SUMIF(A2:A6,"AA",D2:D6)
就是加總AA的時間差的總和
PS:時間格式稍微調一下就OK了
2010-01-11 09:05:57 補充:
次數用
=COUNTIF(A2:A6,"AA")
2010-01-11 09:36:00 補充:
檢查B那一欄的巨集
Sub Macro1()
' 快速鍵 Ctrl+b
Dim n As Integer
Dim tmpStr() As String
Dim seconds As Integer
n = 2
Do While Worksheets("Sheet2").Range("B" & n) <> ""
If Worksheets("Sheet2").Range("B" & n).Value <> "" Then
tmpStr = Split(Worksheets("Sheet2").Range("B" & n).Text, ":")
2010-01-11 09:36:06 補充:
seconds = tmpStr(0) * 60 + tmpStr(1)
If seconds > 180 Then
Worksheets("Sheet2").Range("B" & n).Font.ColorIndex = 3
End If
End If
n = n + 1
Loop
2010-01-11 09:36:34 補充:
End Sub
2010-01-11 09:50:31 補充:
C那一欄就把"B"改成"C"
180改成270
資料我放在"Sheet2"
你要依你的資料所在來做修改
其實第一個時間差的問題
你綜合一下意見欄裡的各位大大的意見
還有我這個巨集的的方式應改也可以想出解決之道
這巨集裡Do While的敘述
讓你有不管增加多少資料都不用改程式的好處
2010-01-11 10:21:58 補充:
另外有一種巨集和公式混和應用的方法
像第一個問題
就可以把公式以字串的方式填入你要放置的位置
像
t = "=IF(HOUR(C2)=0,IF(HOUR(B2)=0,C2-B2," & """" & "24" & ":" & "00" & """" & "-B2+C2),C2-B2)"
Worksheets("Sheet2").Range("D" & 2).Text = t
就是要處理一些特殊字員比較麻煩
然後把它選取起來
往下複製
至於要複製到哪為止呢
當然還利用Do While
2010-01-11 10:29:13 補充:
不好意思
把 seconds > 180
改成
seconds >= 180