Afficher les millisecondes dans Excel

J'essaie d'Afficher des 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 faire une nouvelle colonne à côté de celle-ci qui garde une moyenne courante et affiche l'heure dans un format 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")

Cela affiche uniquement " mm: SS.0" dans la cellule. Pourtant, quand je clique sur la cellule, il montre "hh:mm:ss" dans la barre de formule. Pourquoi les heures manquantes? Comment puis-je afficher les heures, minutes, secondes et millisecondes?

108
demandé sur ashleedawg 2010-06-22 21:09:03

4 réponses

Faites un clic droit sur la cellule B1 et choisissez formater les cellules . Dans Custom , Placez les éléments suivants dans la zone de texte intitulée Type :

[h]:mm:ss.000 

Pour définir dans le code, vous pouvez faire quelque chose comme:

Range("A1").NumberFormat = "[h]:mm:ss.000"

Cela devrait vous donner ce que vous cherchez.

Remarque: les champs spécialement formatés exigent souvent que la largeur de la colonne soit suffisamment large pour l'ensemble du contenu du texte formaté. Sinon, le texte s'affichera comme ######.

206
répondu Ben McCormack 2010-06-22 19:38:48

J'ai découvert dans Excel 2007, si les résultats sont une Table 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 quand j'incorpore la requête en tant que connexion de données dans Excel, le format donne toujours .000 millisecondes.

5
répondu Eric 2012-11-12 15:30:17

Je l'ai fait dans Excel 2000.

Cette déclaration devrait ê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

4
répondu Gilbert Le Blanc 2010-06-22 17:37:45

Représentez D'abord l'époque de la milliseconde en tant que 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.

-3
répondu George 2017-01-30 19:57:46