我试图写一个宏,发生在秒(十进制)的时间值并将其转换为毫米:(保留两位小数)ss.00格式我来最接近的是这样的:如何使用excel vba格式化带小数点的时间?
Application.Text((1.23/86400), "mm:ss.00")
导致:
00:01.2
我想不通为什么它不显示小数点后第二位。
格式()无法正常工作或:
Format((1.23/86400), "mm:ss.00")
结果:
12:01.0
我试图写一个宏,发生在秒(十进制)的时间值并将其转换为毫米:(保留两位小数)ss.00格式我来最接近的是这样的:如何使用excel vba格式化带小数点的时间?
Application.Text((1.23/86400), "mm:ss.00")
导致:
00:01.2
我想不通为什么它不显示小数点后第二位。
格式()无法正常工作或:
Format((1.23/86400), "mm:ss.00")
结果:
12:01.0
我测试了上述VBA和Application.Text((1.23/86400), "mm:ss.00")
我得到00:01.23
和Format((1.23/86400), "mm:ss.00")
,我得到12:01.00
如果您要将它写入Excel单元格,请执行此操作
Thisworkbook.Sheets("Sheet1").Range("A1").Value = _
"'" & Application.Text((1.23/86400), "mm:ss.00")
或
Thisworkbook.Sheets("Sheet1").Range("A1").Value = _
"'" & Format((1.23/86400), "mm:ss.00")
另外,您还可以使用此
With ThisWorkbook.Sheets("Sheet1").Range("A1")
.NumberFormat = "mm:ss.00"
.Value = Application.Text((1.23/86400), "mm:ss.00")
End With
或
With ThisWorkbook.Sheets("Sheet1").Range("A1")
.NumberFormat = "mm:ss.00"
.Value = Format((1.23/86400), "mm:ss.00")
End With
我们已经发现,Format()
VBA函数不支持以后的小数位秒mm:ss.00。没有在官方文档中提到。
所以,而是采用了Format()
功能,我们称为VBA代码中的工作表函数TEXT()
:
TeamTime(j) = Application.WorksheetFunction.Text(thisCell, "mm:ss.00")
谢谢你,这工作。 '_“'”和'的含义是什么? – Agargara
这是为了续行。我也可以这样写'ThisWorkbook.Sheets(“Sheet1”)。Range(“A1”)。Value =“'”&Application.Text((1.23/86400),“mm:ss.00”)' –