J'essaye d'afficher les millisecondes dans une macro Excel. J'ai une colonne d'entiers qui sont des horodatages en millisecondes (par exemple, 28095200 est 7: 48: 15.200 am), et je veux créer une nouvelle colonne à côté qui garde une moyenne courante et affiche l'heure dans un hh:mm:ss.000
format.
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")
Cela n'affiche que "mm: ss.0" dans la cellule. Pourtant, lorsque je clique sur la cellule, il affiche "hh: mm: ss" dans la barre de formule. Pourquoi les heures manquent-elles? Comment puis-je afficher les heures, les minutes, les secondes et les millisecondes?
3
dans laRound
fonction. Cela garantit que vous obtenez 3 décimales au lieu de seulement 2..
doit être remplacé par,
, tout comme pour les décimales dans les nombres. Sinon, Excel se plaindra qu'il ne s'agit pas d'un format valide. Donc, ça doit être[h]:mm:ss,000
J'ai découvert dans Excel 2007, si les résultats sont un tableau d'une requête intégrée, le ss.000 ne fonctionne pas. Je peux coller les résultats de la requête (à partir de SQL Server Management Studio) et formater l'heure très bien. Mais lorsque j'intègre la requête en tant que connexion de données dans Excel, le format donne toujours .000 en millisecondes.
la source
Je l'ai fait dans Excel 2000.
Cette déclaration doit être:
ms = Round(temp - Int(temp), 3) * 1000
Vous devez créer un format personnalisé pour la cellule de résultat de
[h]:mm:ss.000
la source
Représentez d'abord l'époque de la milliseconde sous forme de date (généralement 1/1/1970), puis ajoutez votre milliseconde divisée par le nombre de millisecondes dans un jour (86400000):
=DATE(1970,1,1)+(A1/86400000)
Si votre cellule est correctement formatée, vous devriez voir une date / heure lisible par l'homme.
la source