我在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代码?
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
。