Я пытаюсь отобразить миллисекунды в макросе 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")
В ячейке отображается только «мм: сс.0». Тем не менее, когда я нажимаю на ячейку, в строке формул отображается «чч: мм: сс». Почему не хватает часов? Как я могу показать часы, минуты, секунды и миллисекунды?
3
вRound
функции. Это гарантирует, что вы получите 3 десятичных разряда вместо двух.
необходимо заменить его на,
, как и для десятичных знаков в числах. В противном случае Excel будет жаловаться, что это недопустимый формат. Так что это должно быть[h]:mm:ss,000
В Excel 2007 я обнаружил, что если результаты представляют собой таблицу из встроенного запроса, ss.000 не работает. Я могу вставить результаты запроса (из SQL Server Management Studio) и отлично отформатировать время. Но когда я встраиваю запрос как соединение данных в Excel, формат всегда дает .000 в качестве миллисекунд.
источник
Я сделал это в Excel 2000.
Это заявление должно быть:
ms = Round(temp - Int(temp), 3) * 1000
Вам необходимо создать собственный формат для ячейки результата
[h]:mm:ss.000
источник
Сначала представьте эпоху миллисекунды как дату (обычно 01.01.1970), затем добавьте миллисекунду, разделенную на количество миллисекунд в дне (86400000):
=DATE(1970,1,1)+(A1/86400000)
Если ваша ячейка правильно отформатирована, вы должны увидеть удобочитаемую дату / время.
источник