我有一个用十进制数表示的时间,我需要使用 VBA 在 Excel 中将其转换为分钟和秒。
例子: 小数点前的数字表示分钟为 0.197683577(0 分钟) 数字乘以 60 得到秒数 = 0.197683577*60 = 11.86101462(12 秒) = 0:12
我知道我可以通过复制和粘贴到文本格式并使用文本将数字左右分隔到小数点的列然后在两者之间添加“:”来做到这一点,但必须有一种方法来计算这个.
最佳答案
Public Function FromDecimalTime(ByVal t As Double) As Date
FromDecimalTime = TimeSerial(0, Fix(t), (t - Fix(t)) * 60)
End Function
与公式相同:
=TIME(0,TRUNC(A1),(A1-TRUNC(A1))*60)
嗯,实际上不一样。 TimeSerial
会根据舍入规则(11.86
-> 12
)对秒数进行舍入,TIME
会截断( 11.86
-> 11
)。但您可以对其最后一个参数应用舍入函数。
关于vba - 使用VBA将十进制数转换为分钟和秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10421849/