Vba 到四舍五入分钟的时间
我在Excel单元格中有以下值:Vba 到四舍五入分钟的时间,vba,excel,Vba,Excel,我在Excel单元格中有以下值: Time Dev Total 00:47:53 00:03:40 50 我正在使用VBA计算我的“总”值: 这返回50。我想考虑一下秒数,返回52秒,因为秒数会增加93秒,这意味着超过一分半钟。所以它必须凑到52 我必须如何调整VBA代码?VBAMinute函数将始终截断,其返回值限制在0…59范围内的整数 请尝试以下方法: Function sumMinutes(d1 As Date, d2 As Date)
Time Dev Total
00:47:53 00:03:40 50
我正在使用VBA计算我的“总”值:
这返回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秒标记处正好落下的某些时间可能会向下舍入,而不是向上舍入。如果这是您的问题,您可以使用工作表函数.Round
方法,而不是使用VBACLng
。VBAMinute
函数将始终截断,其返回值限制为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秒标记处正好落下的某些时间可能会向下舍入,而不是向上舍入。如果这是您的问题,您可以使用工作表函数.Round
方法,而不是使用VBACLng