Estoy tratando de mostrar milisegundos en una macro de Excel. Tengo una columna de enteros que son marcas de tiempo en milisegundos (por ejemplo, 28095200 es 7:48: 15.200 am), y quiero crear una nueva columna junto a ella que mantenga un promedio móvil y muestre la hora en un hh:mm:ss.000
formato.
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")
Esto solo muestra "mm: ss.0" en la celda. Sin embargo, cuando hago clic en la celda, muestra "hh: mm: ss" en la barra de fórmulas. ¿Por qué faltan las horas? ¿Cómo puedo mostrar las horas, los minutos, los segundos y los milisegundos?
3
en laRound
función. Esto asegura que obtenga 3 lugares decimales en lugar de solo 2..
debe reemplazarse con,
, al igual que para los lugares decimales en números. De lo contrario, Excel se quejará de que no es un formato válido. Entonces, tiene que ser[h]:mm:ss,000
Descubrí en Excel 2007, si los resultados son una tabla de una consulta incrustada, el ss.000 no funciona. Puedo pegar los resultados de la consulta (de SQL Server Management Studio) y formatear la hora sin problemas. Pero cuando incrusto la consulta como una conexión de datos en Excel, el formato siempre da .000 como milisegundos.
fuente
Hice esto en Excel 2000.
Esta declaración debe ser:
ms = Round(temp - Int(temp), 3) * 1000
Necesita crear un formato personalizado para la celda de resultado de
[h]:mm:ss.000
fuente
Primero represente la época del tiempo de milisegundos como una fecha (generalmente 1/1/1970), luego agregue su tiempo de milisegundos dividido por el número de milisegundos en un día (86400000):
=DATE(1970,1,1)+(A1/86400000)
Si su celda está formateada correctamente, debería ver una fecha / hora legible por humanos.
fuente