我需要列B和C,其中包含格式为mm/dd/yyyy hh:mm
的数据 - 表示某些会议的开始(B列)和结束日期(C列)。
我正在尝试创建一个VBA宏,它只能从两个列中提取格式为hh:mm
的时间,然后计算两个时间之间的差异,以便找出每个会议的持续时间(结果将显示在D栏上。)
你能告诉我在这里可以做些什么吗?
答案 0 :(得分:1)
在D栏中使用公式
=(C:C-B:B)*24
以获得数小时的差异。
或者只是在D栏中使用以下公式
=C:C-B:B
并将列D格式化为时间,以获得hh:mm
如果需要,您可以使用VBA将此公式添加到所需范围,例如
With Worksheets("MySheet").Range("D1:D5").Formula = "=(C:C-B:B)*24"
或时间格式为
With Worksheets("MySheet").Range("D1:D5")
.Formula = "=C:C-B:B"
.NumberFormat = "hh:mm"
End With
答案 1 :(得分:1)
Give this a try:
Sub difff()
Dim i As Long, N As Long
N = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To N
Cells(i, "D") = Cells(i, "C") - Cells(i, "B")
Next i
Range("D:D").NumberFormat = "hh:mm"
End Sub
答案 2 :(得分:0)
19/06/2017 13:30:00
中的A1
和20/06/2017 13:39:00
中的A2
给定=A2-A1
的自定义数字格式的公式[h]:mm:ss
会返回24:09:00
h
周围的方括号告诉Excel显示超过24小时的时间
如果没有方括号,则会将时间显示为00:09:00
。这是因为它计算为1天9分钟,但没有显示天数。
为了获得从日期开始的时间,您可以将其格式化为将日期/时间保留为飞镖的时间,但只显示时间。
或者,您可以删除日期/时间的整数以获得时间 - 在这种情况下,日期部分将显示为00/01/1900。 =A1-INT(A1)