我在Excel单元格中有这个值:
Time Dev Total
00:47:53 00:03:40 50
我正在使用VBA来计算我的“总计”值:
Minute(Cells(2, 1).Value) + (Minute(Cells(2, 2).Value))
这会返回50.我想要考虑秒数,然后返回52,因为秒数会增加93秒,超过一分半钟。所以它必须达到52
我该如何调整我的VBA代码?
答案 0 :(得分:2)
VBA Minute
函数将始终截断,其返回值仅限于0...59
范围内的整数。
请改为尝试:
Function sumMinutes(d1 As Date, d2 As Date) As Long
sumMinutes = CLng((d1 + d2) * 1440)
End Function
Excel将日期存储为日期和一天中的几分之一。由于一天中有1440分钟,因此将Excel日期乘以1440将得出分钟数。使用CLng
然后有效地舍入值。
编辑:请注意,因为VBA舍入算法舍入到最接近的偶数(所谓的银行家舍入),有时会下降 强>在30秒大关,可以向下舍入而不是向上。如果这是一个问题,您可以使用CLng
方法,而不是使用VBA WorksheetFunction.Round
。