在Excel中显示毫秒数

时间:2010-06-22 17:09:04

标签: excel vba excel-vba time

我试图在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")

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

4 个答案:

答案 0 :(得分:208)

右键单击单元格B1,然后选择格式化单元格。在自定义中,将以下内容放在标有类型的文本框中:

[h]:mm:ss.000 

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

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

这应该可以为您提供所需的信息。

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

答案 1 :(得分:6)

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

答案 2 :(得分:4)

我是在Excel 2000中完成的。

此声明应为:ms = Round(temp - Int(temp), 3) * 1000

您需要为[h]:mm:ss.000

的结果单元格创建自定义格式

答案 3 :(得分:-3)

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

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

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