在Excel中显示毫秒数

Eve*_*lyn 115 excel time vba

我试图在Excel宏中显示毫秒.我有一个整数列,它们是以毫秒为单位的时间戳(例如28095200是7:48:15.200 am),我想在它旁边创建一个新列,它保持运行平均值并以hh:mm:ss.000格式显示时间.

 Dim Cel As Range
 Set Cel = Range("B1")
 temp = Application.Average(Range("A1:A2")) / 1000
 ms = Round(temp - Int(temp), 2) * 1000
 Cel.Value = Strings.Format((temp / 60 / 60 / 24), "hh:mm:ss") _
                & "." & Strings.Format(ms, "#000")
Run Code Online (Sandbox Code Playgroud)

这只在单元格中显示"mm:ss.0".然而,当我点击单元格时,它会在公式栏中显示"hh:mm:ss".为什么缺少时间?如何显示小时,分钟,秒和毫秒?

Ben*_*ack 212

右键单击Cell B1并选择Format Cells.在自定义中,将以下内容放在标记为Type的文本框中:

[h]:mm:ss.000 
Run Code Online (Sandbox Code Playgroud)

要在代码中设置它,您可以执行以下操作:

Range("A1").NumberFormat = "[h]:mm:ss.000"
Run Code Online (Sandbox Code Playgroud)

这应该会给你你想要的东西.

注意:特殊格式的字段通常要求列宽足够宽,以便格式化文本的整个内容.否则,文本将显示为######.

  • 我刚发现以下内容并希望分享它,以防其他人遇到同样的问题:如果您的Windows/Excel配置为德国,`.`必须替换为`,`,就像数字中的小数位一样.否则Excel会抱怨它不是有效的格式.所以,它必须是"[h]:mm:ss,000` (25认同)

小智 6

我在Excel 2007中发现,如果结果是嵌入式查询中的表,则ss.000不起作用.我可以粘贴查询结果(来自SQL Server Management Studio),并格式化时间就好了.但是当我在Excel中将查询作为数据连接嵌入时,格式总是以毫秒为单位给出.000.