在Excel中显示毫秒

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我试图在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”。

另外,另一件奇怪的事情是如果我把最后一行改为Strings.Format(ms, "#000."),然后我得到了“嗯:ss.000。”。这就是我想要的,只是不是额外的时间。

提问于
用户回答回答于

右键单击单元格B1选择格式单元格

[h]:mm:ss.000 

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

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

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

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

用户回答回答于

我在Excel 2000中做了这个。

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

结果单元格创建自定义格式。[h]:mm:ss.000

扫码关注云+社区