我有一个值为
的列 09:00 - 21:00
试着找出如何在数小时内获得差异,即。对于此示例12
。
答案 0 :(得分:2)
你可以使用这个功能
Function GetHourDifference(cell As Range) As Long
GetHourDifference = Hour(Split(cell.Value, "-")(1)) - Hour(Split(cell.Value, "-")(0))
End Function
在主代码中被利用如下
MsgBox GetHourDifference(Range("a1")) '<--| if cell "A1" has value "09:00 - 21:00" it returns: 12
答案 1 :(得分:0)
如果您的09.00 - 21.00
位于单元格 B7 中,则可行:
=TIME(RIGHT(B7,5),RIGHT(B7,2),)-TIME(LEFT(B7,5),MID(B7,4,2),)
非常蛮力,因为它假定时间总是00.00
,并且不会包含其他字符。
答案 2 :(得分:0)
Option Explicit
Sub Macro1()
Dim txtDate As String
Dim i As Integer
Dim varDateDif As Variant, split1 As Variant, split2 As Variant
' Cell with times
txtDate = Range("A2").Value
' Split the cell using the delimiter -
varDateDif = Split(txtDate, "-")
For i = 0 To LBound(varDateDif)
split1 = varDateDif(i) ' First time
split2 = varDateDif(i + 1) ' Second time
Next i
' Difference in hours
Range("B2").Value = Abs(CDate(split1) - CDate(split2))
' Difference in minutes
Range("C2").Value = DateDiff("n", split1, split2)
End Sub
答案 3 :(得分:0)
如果您正在寻找配方解决方案,请使用以下内容:
=HOUR(RIGHT(C24,5))-HOUR(LEFT(C24,5))
只要您的值始终采用所提供的格式,就可以正常工作。
如果您正在寻找VBA解决方案,请使用@ user3598756
的解决方案