Estou tentando exibir milissegundos em uma macro do Excel. Eu tenho uma coluna de números inteiros com registro de data e hora em milissegundos (por exemplo, 28095200 é 7: 48: 15.200 am) e desejo criar uma nova coluna ao lado, que mantenha uma média de execução e exiba o tempo em umhh: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")
Isso exibe apenas "mm: ss.0" na célula. No entanto, quando clico na célula, ele mostra "hh: mm: ss" na barra de fórmulas. Por que as horas estão faltando? Como posso mostrar as horas, minutos, segundos e milissegundos?
3
naRound
função. Isso garante que você obtenha 3 casas decimais em vez de apenas 2..
tenham o mesmo problema: Se o Windows / Excel estiver configurado para a Alemanha, ele deverá ser substituído por,
, como nas casas decimais em números. Caso contrário, o Excel reclamará que não é um formato válido. Então, tem que ser[h]:mm:ss,000
Descobri no Excel 2007 que, se os resultados forem uma tabela de uma consulta incorporada, o ss.000 não funcionará. Eu posso colar os resultados da consulta (do SQL Server Management Studio) e formatar o horário. Mas quando eu incorporo a consulta como uma Conexão de Dados no Excel, o formato sempre fornece 0,000 como milissegundos.
fonte
Eu fiz isso no Excel 2000.
Esta declaração deve ser:
ms = Round(temp - Int(temp), 3) * 1000
Você precisa criar um formato personalizado para a célula de resultado de
[h]:mm:ss.000
fonte
Primeiro, represente a época do milissegundo como uma data (geralmente 1/1/1970) e adicione seu milissegundo dividido pelo número de milissegundos em um dia (86400000):
=DATE(1970,1,1)+(A1/86400000)
Se o seu celular estiver formatado corretamente, você verá uma data / hora legível por humanos.
fonte