繁体   English   中英

如何从文本值计算时差

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM