当前位置:文档之家› 用EXCEL计算起止时间在各个时间段内的时长

用EXCEL计算起止时间在各个时间段内的时长

用EXCEL计算起止时间在各个时间段内的时长
EXCELL中,常遇到这样的问题:已知起始时间和结束时间,如何计算该起止时间在指定时间段上的时间长度?
比如:
在EXCEL工作表中,打开VBA编辑器,将下列代码作为模块插入,保存后即可在单元格中直接调用,格式开如:=Tj($A2,$B2,1),返回开始时间A2、结束时间B2在7-11点时间段内的时长。

以下代码,在解决不同问题时,对部分参数适当修改即可实现。

Function Tj(t1, t2, n As Integer)
Dim f(2) As Integer, Ti(2), arr(2, 1) As Date
n = n - 1
arr(0, 0) = TimeValue("7:00:00")
arr(0, 1) = TimeValue("4:00:00")
arr(1, 0) = TimeValue("11:00:00")
arr(1, 1) = TimeValue("8:00:00")

t1_ = arr(0, 1) - (t1 - arr(0, 0)) 't1_用于记录开始时间至该时间段结束点的时长
Case arr(1, 0) To arr(2, 0) - TimeValue("00:00:01")
f(0) = 1
f(1) = 2
f(2) = 0
t1_ = arr(1, 1) - (t1 - arr(1, 0))
Case Else
f(0) = 2
f(1) = 0
Else
i = 0
i = i + 1
Wend
Ti(f(0)) = Ti(f(0)) + s '如果s在分配至其他时间段后仍有剩余Tj = Ti(n) '返回指定时间段时长
If Tj = TimeValue("00:00:00") Then
Tj = ""
End If
End Function。

相关主题