vba - 使用VBA将十进制数转换为分钟和秒

标签 vba time decimal seconds

我有一个用十进制数表示的时间,我需要使用 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/

相关文章:

excel - 为什么使用变量进行计算会得到与使用单元格引用进行计算不同的结果?

c - 从内存中读取 "zero"是否比读取其他值更快?

javascript - Math.abs() 限制小数位数

R-Excel VBA : how to extract values returned by GetArrayToVBA?

excel - 获取文件夹中所有excel文件的原始创建时间

vba - 将 Range 属性存储为对象?

Python:将时间舍入到最接近的秒和分钟

ios - FFMpeg hls_time 精度

ios - Xcode 中的小数位显示不正确?

php - int 转成decimal 数据类型的过程?