Fonction de minuterie VBA

Les fonctions VBA Timer renvoient le nombre de secondes qui se sont écoulées depuis minuit du jour en cours (renvoyées en tant que type de données Single).

Utilisation de la fonction de minuterie VBA

Le code suivant vous montrera comment utiliser la fonction VBA Timer pour déterminer combien de secondes se sont écoulées, depuis minuit, au moment où le code est exécuté :

12345678 Sous utilisantTheVBATtimerFunction()Dim secondesDepuis As SinglesecondesDepuis = Timer()Debug.Print secondsDepuisFin du sous-marin

Le résultat est:

Utilisez VBA Timer pour obtenir l'heure réelle

Vous pouvez convertir les secondes renvoyées par la fonction Timer au format hh:mm:ss pour voir l'heure réelle en utilisant le code suivant :

123456789101112131415 Sub GettingTheActualTime()Dim secondesDepuis As SingleDim cTime en tant que doubleDim theActualTime en tant que variantesecondesDepuis = Timer()cTime = secondesDepuis / (86400)theActualTime = Format(cTime, "hh:mm:ss")MsgBox "Le temps écoulé depuis minuit en secondes est" & " " & secondsSince & vbNewLine & _"L'heure réelle est : " & " " & theActualTimeFin du sous-marin

Le résultat est:

Temps une section du code VBA

Si vous cherchez à comparer du code réécrit ou à débattre de méthodes "plus rapides" dans VBA, vous pouvez utiliser la minuterie intégrée de VBA. Définir une variable égale à la minuterie au début de votre code et la soustraire de la minuterie à la fin vous donnera un bonne estimation de la durée d'exécution d'un morceau de code.

Les performances peuvent être affectées par d'autres programmes en cours d'exécution ou essayant de s'exécuter pendant que votre macro est active, entre autres.

L'exemple suivant a été utilisé pour voir combien de temps il faudrait pour écrire le mot « test » dans la cellule A1 de la feuille Sheet1 un demi-million de fois. Cela a pris 21 secondes sur ma machine.

123456789101112131415161718 Sous-repère()Compter aussi longtempsDim BenchMark comme doubleBenchMark = Minuteur'Début du code à testerPour le compte = 1 à 500000Feuille1.Cellules(1, 1) = "test"Compte suivant'Fin de code à testerMinuteur MsgBox - BenchMarkFin du sous-marin

Si votre code s'exécute lentement, essayez de l'accélérer en désactivant la mise à jour de l'écran. Pour garder l'écran Excel actif pendant l'exécution du minuteur, nous pouvons insérer la méthode DoEvents dans le code.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave