De VBA-timerfunctie retourneert het aantal seconden dat is verstreken sinds middernacht van de huidige dag (teruggegeven als een enkel gegevenstype).
De VBA-timerfunctie gebruiken
De volgende code laat zien hoe u de VBA-timerfunctie gebruikt om te bepalen hoeveel seconden er zijn verstreken sinds middernacht op het moment dat de code wordt uitgevoerd:
12345678 | Sub met behulp vanTheVBATimerFunction()Dim secondenSinds als singlesecondenSinds = Timer()Debug.Print secondenSindsEinde sub |
Het resultaat is:
Gebruik VBA Timer om de werkelijke tijd te krijgen
U kunt de seconden die door de Timer-functie worden geretourneerd, converteren naar het uu:mm:ss-formaat om de werkelijke tijd te zien met behulp van de volgende code:
123456789101112131415 | Sub GettingTheActualTime()Dim secondenSinds als singleDim cTime als dubbelDim de werkelijke tijd als variantsecondenSinds = Timer()cTijd = seconden sinds / (86400)theActualTime = Format(cTime, "uu:mm:ss")MsgBox "De verstreken tijd sinds middernacht in seconden is" & " " & secondsSince & vbNewLine & _"De werkelijke tijd is:" & " " & de werkelijke tijdEinde sub |
Het resultaat is:
Tijd een sectie van VBA-code
Als u herschreven code wilt benchmarken of "snellere" methoden in VBA wilt bespreken, kunt u de ingebouwde timer van VBA gebruiken. Als u een variabele instelt die gelijk is aan de timer aan het begin van uw code en deze aan het einde aftrekt van de timer, krijgt u een goede schatting hoe lang het duurt voordat een stukje code wordt uitgevoerd.
De prestaties kunnen onder andere worden beïnvloed door andere programma's die worden uitgevoerd of proberen uit te voeren terwijl uw macro actief is.
Het volgende voorbeeld werd gebruikt om te zien hoe lang het zou duren om het woord 'test' een half miljoen keer in cel A1 op Blad1 te schrijven. Het duurde 21 seconden op mijn machine.
123456789101112131415161718 | Sub BenchMark()Dimtelling zo langDim BenchMark als dubbelBenchMark = Timer'Begin van te testen code'Voor telling = 1 tot 500000Blad1.Cellen (1, 1) = "test"Volgende telling'Einde van code om te testen'MsgBox Timer - BenchMarkEinde sub |
Als uw code langzaam werkt, kunt u proberen deze te versnellen door schermupdates uit te schakelen. Om het Excel-scherm actief te houden terwijl de timer loopt, kunnen we de DoEvents-methode in de code invoegen.