几分钟的时间

问题描述 投票:0回答:1

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

excel vba excel-vba
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.