![](/img/trans.png)
[英]How to calculate time difference of text like YYYYMMDDHHMMSSXXX format including millisecond
[英]How to calculate time difference from a text value
我正在制作一个自定义的名册工作表以安排员工的轮班时间。 有时候,员工不得不轮班工作。 我正在网上冲浪,并在下面的链接中发现了这个想法。
https://www.findmyshift.com/au/free-excel-roster-template
这上面有vba代码(已被coz锁定),该代码将单元格值“ 8 am-2pm”返回到“ 6”(用于计算以文本格式给出的时间差)。
对于拆分班次,单元格值“ 8 am-2pm/4pm-9pm”将返回“ 11”。
有人可以为我提供代码以获得相似的结果吗?
提前致谢。
这是您的功能。 它可以处理任何数量的轮班,包括小时,小时和分钟,并且可以跨越午夜,例如8:30pm-2:45am
: 8:30pm-2:45am
:
Public Function TimeDifference(s As String) As Variant
On Error GoTo Handler
Dim shifts() As String
Dim result As Double
Dim hours() As String
Dim duration As Double
result = 0
shifts = Split(s, "/")
For Each shift In shifts
hours = Split(shift, "-")
duration = TimeValue(hours(1)) - TimeValue(hours(0))
If duration < 0 Then
duration = duration + 1
End If
result = result + duration * 24
Next shift
TimeDifference = result
Exit Function
Handler:
TimeDifference = CVErr(xlErrValue)
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.