在 Excel 中显示毫秒

我试图在 Excel 宏中显示毫秒。我有一列整数,它们是以毫秒为单位的时间戳(例如,28095200是上午7:48:15.200) ,我想在它旁边创建一个新的列,它保持运行平均值并以 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")

这只在单元格中显示“ mm: ss.0”。然而,当我点击单元格时,它在公式栏中显示“ hh: mm: ss”。为什么时间不见了?如何显示小时、分钟、秒和毫秒?

259097 次浏览

右键单击 CellB1并选择 格式单元格。在 习俗中,在标记为 类型的文本框中放入以下内容:

[h]:mm:ss.000

要将其设置为代码,可以执行以下操作:

Range("A1").NumberFormat = "[h]:mm:ss.000"

这应该能给你想要的东西。

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

我是在 Excel2000中完成的。

这个声明应该是: ms = Round(temp - Int(temp), 3) * 1000

您需要为 [h]:mm:ss.000的结果单元格创建自定义格式

我在 Excel2007中发现,如果结果是来自嵌入式查询的 Table,则 ss.000不起作用。我可以粘贴查询结果(来自 SQLServerManagementStudio) ,并格式化时间。但是当我将查询作为 DataConnection 嵌入到 Excel 中时,格式总是给出.000作为毫秒。

首先将毫秒时间的纪元表示为日期(通常是1970年1月1日) ,然后将毫秒时间除以一天中的毫秒数(86400000) :

=DATE(1970,1,1)+(A1/86400000)

如果单元格格式正确,应该会看到一个人类可读的日期/时间。