我試圖在Excel宏中顯示毫秒。我有一列整數,它們僅僅是以毫秒爲單位的時間戳(例如28095200是7:48:15.200 am),我想在它旁邊創建一個新的列,以保持運行平均值,並以「hh:mm」顯示時間:ss.000「格式。我嘗試了多種不同的路線,但我不能在毫秒級的情況下得到毫秒而不會導致奇怪的事情發生。在Excel中顯示毫秒
這就是我現在所擁有的:
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.")
,那麼我會得到「hh:mm:ss.000」。這就是我想要的,而不是多餘的時間。
耶!但是有沒有辦法在代碼中做到這一點?現在,每次運行宏時,格式化都會重置。 (因爲我在宏中刪除並重新創建工作表。)Cel.EntireRow.NumberFormat =「[h]:mm:ss.000」但是在單元格中給了我「######」。 – Evelyn 2010-06-22 17:48:56
@Evelyn - 3件事:1)我添加了您需要設置數字格式的代碼。 2)確保你的列足夠寬以適應整個格式化文本。看到我上面的註釋。 3)參見吉爾伯特的回答,並注意在「回合」函數中使用'3'。這確保你得到3位小數而不是2。 – 2010-06-22 19:40:34
啊!你是對的。我只需要擴大專欄。另外,在這種情況下,我只想要2的精度。我只是希望它被格式化爲3.非常感謝您的幫助! – Evelyn 2010-06-22 20:08:33