VBA-timer

Excel VBA TIMER-funktion

VBA Timer är en inbyggd funktion som används för att ge oss fraktionsvärdet på sekunder, det är en mycket användbar funktion som används för att ibland pausa alla koder som körs eller återuppta dem på grundval av den tid som användaren tillhandahåller, timern är helt enkelt används som ett uttalande i VBA med inmatning av tid.

Enkelt uttryckt ger TIMER det totala antalet sekunder som gått från midnatt den aktuella dagen. Direkt från rad en i koden kan vi faktiskt spåra den tid som vår kod tar för att slutföra processen som anges i delproceduren.

Ibland när du skriver en kod och du vill testa kodens varaktighet, dvs hur lång tid det tar för din kod att slutföra delproceduren. Genom att testa den faktiska varaktigheten som din kod tar kan du göra din kod effektiv och eliminera tidskrävande process genom att radera oönskade eller långa koder från din modul.

Hur använder jag TIMER-funktionen i VBA?

Som jag sa TIMER-funktionen returnerar de totala sekunderna som gått förbi midnatt det aktuella datumet. När jag skriver den här artikeln är tiden 13:50:45 i Indien.

Jag har skapat ett makronamn och tilldelat värdet på TIMER i meddelandefältet VBA.

Koda:

 Sub Timer_Example1 () MsgBox Timer End Sub 

När jag kör den här koden fick jag resultatet 50480.08.

Det här är de totala sekunderna som gått förbi dagens midnatt, dvs från 12:00:00

Så från midnatt 12 till aktuell tid 14:01:20, totalt 14 timmar 1 minut 20 sekunder gått förbi. På några sekunder är det lika med 50480.08 vilket ges av vår TIMER-funktion.

Exempel

Du kan ladda ner den här VBA Timer Excel-mallen här - VBA Timer Excel-mall

Exempel # 1 - Beräkna den totala tid som din kod tar

Nu kommer vi att göra en enkel kodning för att testa den tid som VBA tar för att utföra proceduren. Jag har skrivit en kod som visas i bilden nedan.

Koda:

 Sub Do_Until_Example1 () Dim ST Som Single ST = Timer Dim x As Long x = 1 Do tills x = 100000 celler (x, 1). Värde = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Om jag kör den här koden nu visar den mig den totala tid som VBA tar för att köra.

Det står 3.058594, resultatet av denna funktion är i sekunder, dvs. den totala tiden som den här koden tar är 3.058 sekunder.

För att du ska kunna använda koden har jag skrivit nedanstående kod åt dig.

Koda:

 Sub Timer_Exempel1 () Dim StartTime som enda StartingTime = Timer 'Ange din kod här' Ange din kod här 'Ange din kod här' Ange din kod här MsgBox Timer - Starttid End Sub 

Använd ovanstående och skriv din kod efter koden StartingTime = Timer men före koden MsgBox Timer - StartingTime dvs. i grönt område måste du ange din kod.

Förklaring: För det första betyder variabeln StartingTime = Timer när koden körs är lika med tiden som gått från midnatt till kodens körtid.

Timer - StartingTime: Det betyder efter att ha kört koden vilken tid som har gått men tid registrerad i början av koden in genom variabel starttid .

Detta ger skillnaden mellan start- och sluttid och returnerar resultatet.

Exempel # 2 - Visa resultatet i rätt tidsformat

Som vi har sett är resultatet av funktionen i sekunder men inte i exakt format. Vi kan dock använda ett VBA-tidsformat till slutresultatet genom att använda FORMAT-funktionen.

Använd koden nedan för att se resultatet i rätt tidsformat, dvs ”hh: mm: ss”.

Jag har använt FORMAT-funktionen här. Resultatet ges av (Timer - starttid). Jag har delat upp det med numret 86400 för att konvertera det till sekunder enligt reglerna för tidsformat, sedan har jag tillämpat tidsformatet i en timme, minut och andra format.

Om jag nu kör koden kommer det att ge resultatet så här.

Så den totala tiden som koden tar är 3 sekunder.

Skönheten i den här koden är det ögonblick den korsar 60 sekunder, den visar resultatet på några minuter. Jag har pausat min kod igång i en minut (med Ctrl + Break) och ser resultatet.

Så den totala tiden som den här koden tar är nu 1 minut och 2 sekunder.

Exempel # 3 - Alternativ kod till timer

Det finns ett alternativ till TIMER med funktionen NOW () . Nedan är den alternativa koden.

Saker att komma ihåg

  • TIMER-funktionen vilar värdet i slutet av dagen, dvs. 23:59:59.
  • NU-funktionen returnerar aktuellt datum och aktuell tid.
  • TIMER visar de totala sekunder som gått förbi det aktuella datumet midnatt.