VBA-paus - Pausa VBA-koden med viloläge och väntefunktion

Innehållsförteckning

Pausa VBA-koden från att köra

VBA Paus används för att pausa koden från att köra den under en viss tid och för att pausa en kod i VBA använder vi metoden application.wait.

När vi bygger stora VBA-projekt efter att ha utfört något kan vi behöva vänta en stund för att utföra andra uppgifter. I sådana scenarier, hur pausar vi makrokoden för att göra vår uppgift? Vi kan pausa VBA-koden under en viss tidsperiod genom att använda två funktioner, och dessa funktioner är "Vänta" och "Viloläge."

Hur pausar jag koden med hjälp av väntemetoden?

"Vänta" är den funktion vi använder i VBA för att hålla makrot igång under en viss tid. Genom att använda den här funktionen måste vi nämna till vilken tid vår kod ska vänta.

Till exempel, om du kör koden 13:00:00, om du anger tiden som “13:15:00”, kommer det att hålla makrot igång i 15 minuter.

Titta nu på argumentet med WAIT-funktionen i VBA.

I tidsargument måste vi nämna vid vilken tidpunkt vår kod ska pausa eller vänta.

Titta till exempel på nedanstående VBA-kod.

Koda:

Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " Till VBA "End Sub

Kom ihåg att min systemtid är 13:00:00 när du kör den här koden. Så snart jag kör koden kommer den att köra de två första raderna, dvs.

Område ("A1"). Värde = "Hej" och Område ("A2"). Värde = "Välkommen"

Men om du tittar på nästa rad står det Application.Wait (“13:15:00”), så efter att ha utfört dessa rader, kommer mitt makro att pausas i 15 minuter, dvs från 13:00:00, det väntar tills min systemtid når 13:15:01.

När min systemtid når den tiden kommer den att köra de återstående kodraderna.

Område ("A3"). Värde = "Till VBA"

Detta är dock inte det bästa sättet att öva pauskoden. Låt oss säga att du kör koden vid olika tidpunkter, och då måste vi använda funktionen NU VBA med funktionen TIDVÄRDE.

Nu- funktionen returnerar det aktuella datumet och tiden enligt det system vi arbetar med.

TIME Value- funktionen håller tiden från 00:00:00 till 23:59:29.

Ok, antar att vi måste pausa koden i 10 minuter när vi kör koden, då kan vi använda koden nedan.

Koda:

Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Value =" To VBA "End Sub

Detta liknar tidigare kod, men den enda skillnaden är att vi har lagt till funktionen NU & TIDVÄRDE.

När vi kör den här koden kommer den att hålla eller pausa körningen i 10 minuter.

Hur pausar du VBA-koden med sömnmetoden?

Sömn är en komplicerad funktion i VBA eftersom den inte är en inbyggd funktion. Eftersom det inte är ett inbyggt för att göra det tillgängligt att använda måste vi lägga till koden nedan till toppen av vår modul.

Koda:

#Om VBA7 sedan offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If' For 32 Bit Systems

Du behöver bara kopiera ovanstående kod och klistra in den överst i modulen.

Anledningen till att vi måste lägga till ovanstående kod eftersom SLEEP är en VBA-funktion som presenteras i Windows DLL-filer, så vi måste deklarera nomenklaturen innan vi börjar delproceduren.

Ok, låt oss titta på exemplet på SLEEP-funktionen nu.

Koda:

Sub Pause_Example2 () Dim StartTime Som String Dim EndTime Som String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub

Först har vi förklarat två variabler som String.

Dim StartTime As String Dim EndTime As String

Sedan har vi tilldelat TIME excel-funktionen till StartTime-variabeln. TID-funktionen returnerar aktuell tid enligt systemet.

StartTime = Time

Sedan har vi tilldelat samma att visas i meddelandefältet.

MsgBox StartTime

Sedan har jag använt SLEEP-funktionen som viloläge (10000).

Här är 10000 millisekunder, vilket är lika med 10 sekunder i VBA.

Sedan har jag äntligen tilldelat variabeln EndTime ytterligare en TIME-funktion .

Nu har jag skrivit en kod för att visa tiden.

EndTime = Time

Detta visar skillnaden mellan starttid och sluttid.

Nu ska jag köra koden och se vilken starttid det är.

När jag kör koden är min systemtid 13:40:48 och nu kommer min kod att sova i 10 sekunder. Till slut är min tid som följer.

Så här kan vi pausa koden från att köra den under en viss tid.

Intressanta artiklar...