几分钟的时间

时间:2018-03-02 14:49:48

标签: excel vba excel-vba

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

1 个答案:

答案 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