如何从文本值计算时间差

我正在制作一个定制的名册工作表来安排员工的轮class。 有些时候员工需要分工。 我正在浏览网页,发现这个想法在下面的链接相当令人印象深刻。
https://www.findmyshift.com/au/free-excel-roster-template

它上面有vba代码(它是locking的),它将单元格的值“8 am-2pm”返回到“6”(意思是计算文本格式的时间差)。
对于分class,单元格值“8 am-2pm / 4pm-9pm”将返回“11”。

有人可以给我提供一个代码来实现类似的结果。
提前致谢。

这是你的function。 它可以处理任何class次,包括几小时或几小时,几分钟,跨越午夜,如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