VBA-timer

Excel VBA TIMER-functie

VBA Timer is een ingebouwde functie die wordt gebruikt om ons de fractionele waarde van seconden te geven, het is een zeer nuttige functie die soms wordt gebruikt om een ​​reeks lopende codes te pauzeren of te hervatten op basis van de tijd die door de gebruiker is opgegeven, timer is eenvoudig gebruikt als een statement in VBA met de input van tijd.

In eenvoudige bewoordingen geeft de TIMER het totale aantal seconden verstreken vanaf de middernacht van de huidige dag. Vanaf regel één van de code kunnen we de tijd bijhouden die onze code verbruikt om het proces te voltooien dat is gespecificeerd in de subprocedure.

Soms wanneer u een code schrijft en u de codeduur wilt testen, dwz wat is de totale tijd die uw code nodig heeft om de subprocedure te voltooien. Door de werkelijke duur van uw code te testen, kunt u uw code efficiënt maken en tijdrovende processen elimineren door ongewenste of lange codes uit uw module te verwijderen.

Hoe gebruik je de TIMER-functie in VBA?

Zoals ik vertelde, geeft de TIMER-functie het totale aantal seconden terug dat is verstreken vanaf de middernacht van de huidige datum. Wanneer ik dit artikel schrijf, is het 13:50:45 uur in India.

Ik heb een macronaam gemaakt en de waarde van TIMER toegewezen in het VBA-berichtvenster.

Code:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Toen ik deze code uitvoerde, kreeg ik het resultaat als 50480.08.

Dit is het totale aantal seconden dat is verstreken vanaf middernacht van vandaag, dwz vanaf 00:00 uur

Dus van middernacht 12 tot de huidige tijd 14:01:20 zijn in totaal 14 uur 1 minuut 20 seconden verstreken. In seconden is het gelijk aan 50480,08 die wordt gegeven door onze TIMER-functie.

Voorbeelden

U kunt deze VBA Timer Excel-sjabloon hier downloaden - VBA Timer Excel-sjabloon

Voorbeeld # 1 - Bereken de totale tijd die uw code in beslag neemt

Nu zullen we enkele eenvoudige coderingen uitvoeren om de tijd te testen die de VBA nodig heeft om de procedure uit te voeren. Ik heb wat code geschreven zoals weergegeven in de onderstaande afbeelding.

Code:

 Sub Do_Until_Example1 () Dim ST As Single ST = Timer Dim x As Long x = 1 Do Tot x = 100000 Cellen (x, 1). Value = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Als ik deze code nu uitvoer, zal het me de totale tijd laten zien die de VBA nodig heeft om uit te voeren.

Er staat 3.058594, het resultaat gegeven door deze functie is in seconden, dwz de totale tijd die deze code nodig heeft is 3.058 seconden.

Om de code te kunnen gebruiken heb ik de onderstaande code voor je geschreven.

Code:

 Sub Timer_Example1 () Dim StartTime As Single StartTime = Timer 'Voer hier uw code in' Voer hier uw code in 'Voer hier uw code in' Voer hier uw code in MsgBox Timer - Starttijd Einde Sub 

Gebruik het bovenstaande en typ uw code na de code StartTime = Timer maar vóór de code MsgBox Timer - Starttijd dwz in het groene gebied moet u uw code invoeren.

Verklaring: Ten eerste betekent de variabele StartingTime = Timer dat op het moment dat de code wordt uitgevoerd, de code gelijk is aan de tijd die is verstreken van middernacht tot de lopende tijd van de code.

Timer - Starttijd: Dit betekent na het uitvoeren van de code wat de verstreken tijd is minus de tijd geregistreerd aan het begin van de code via de variabele starttijd .

Dit geeft het verschil tussen begin- en eindtijd en retourneert het resultaat.

Voorbeeld # 2 - Toon het resultaat in het juiste tijdformaat

Zoals we hebben gezien, is het resultaat van de functie in seconden, maar niet in het nauwkeurige formaat. We kunnen echter een VBA-tijdnotatie toepassen op het eindresultaat met behulp van de FORMAT-functie.

Gebruik de onderstaande code om het resultaat in het juiste tijdformaat te zien, dwz "uu: mm: ss" -formaat.

Ik heb hier de FORMAT-functie gebruikt. Het resultaat wordt gegeven door (Timer - starttijd). Ik heb het gedeeld door het nummer 86400 om het naar seconden te converteren volgens de regels voor tijdnotatie, daarna heb ik het tijdnotatie toegepast in een uur-, minuut- en secondeformaat.

Als ik nu de code uitvoer, krijgt u het resultaat als volgt.

De totale tijd die de code in beslag neemt, is dus 3 seconden.

Het mooie van deze code is dat op het moment dat het 60 seconden passeert, het resultaat in minuten wordt weergegeven. Ik heb mijn code een minuut onderbroken (met Ctrl + Break) en zie het resultaat.

Dus de totale tijd die deze code in beslag neemt, is nu 1 minuut 2 seconden.

Voorbeeld # 3 - Alternatieve code voor timer

Er is een alternatief voor TIMER door de functie NU () te gebruiken. Hieronder staat de alternatieve code.

Dingen om te onthouden

  • De TIMER-functie laat de waarde aan het einde van de dag rusten, dwz om 23:59:59 uur.
  • De functie NU retourneert de huidige datum en de huidige tijd.
  • TIMER toont het totaal aantal seconden verstreken vanaf de huidige datum middernacht.