Sæt VBA-kode på pause, når den kører
VBA Pause bruges til at sætte koden på pause fra at udføre den i et bestemt tidsrum og til at sætte en kode på pause i VBA bruger vi application.wait-metoden.
Når vi bygger store VBA-projekter efter at have udført noget, skal vi muligvis vente et stykke tid på at udføre andre opgaver. I sådanne scenarier, hvordan sætter vi makrokoden på pause for at udføre vores opgave? Vi kan pause VBA-koden i en bestemt tidsperiode ved hjælp af to funktioner, og disse funktioner er "Vent" og "Dvale".

Hvordan sætter jeg kode på pause ved hjælp af ventemetode?
“Vent” er den funktion, vi bruger i VBA til at holde makroen kørende i et bestemt tidsrum. Ved at anvende denne funktion skal vi nævne, indtil hvilket tidspunkt vores kode skal vente.
Hvis du f.eks. Udfører koden kl. 13:00:00, og hvis du angiver tiden som "13:15:00", holder den makroen i 15 minutter.
Se nu på argumentet om WAIT-funktion i VBA.

I tidsargument skal vi nævne, hvornår vores kode skal pause eller vente.
Se for eksempel på nedenstående VBA-kode.
Kode:
Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " Til VBA "End Sub

Husk, at min systemtid er 13:00:00, mens du kører denne kode. Så snart jeg kører koden, udfører den de to første linjer, dvs.
Område ("A1"). Værdi = "Hej" & Område ("A2"). Værdi = "Velkommen"
Men hvis du ser på den næste linje, står der Application.Wait (“13:15:00”), så efter at have udført disse linjeropgaver, vil min makro blive sat på pause i 15 minutter, dvs. fra 13:00:00, den venter, indtil min systemtid når 13:15:01.
Når min systemtid når det tidspunkt, udfører den de resterende kodelinjer.
Område ("A3"). Værdi = "Til VBA"
Dette er dog ikke den bedste måde at øve pausekoden på. Lad os sige, at du kører koden på forskellige tidspunkter, og så skal vi bruge funktionen NU VBA med TIDVÆRDI-funktionen.
Nu- funktionen returnerer den aktuelle dato og tid ifølge det system, vi arbejder på.
TIME-værdi- funktionen holder tiden fra 00:00:00 til 23:59:29.
Ok, antag, at vi skal pause koden i 10 minutter, når vi kører koden, så kan vi bruge nedenstående kode.
Kode:
Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Værdi =" Til VBA "End Sub

Dette svarer til den tidligere kode, men den eneste forskel er, at vi har tilføjet funktionen NU & TIDVÆRDI.
Når vi kører denne kode, vil den holde eller standse udførelsen i 10 minutter.
Hvordan pause VBA-koden ved hjælp af dvalemetode?
Søvn er en kompliceret funktion i VBA, fordi den ikke er en indbygget funktion. Da det ikke er et indbygget for at gøre det tilgængeligt til brug, skal vi tilføje nedenstående kode øverst i vores modul.
Kode:
#Hvis VBA7 derefter offentligt erklære 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 skal bare kopiere ovenstående kode og indsætte den øverst i modulet.

Årsagen til, at vi skal tilføje ovenstående kode, fordi SLEEP er en VBA-funktion, der præsenteres i Windows DLL-filer, så vi er nødt til at erklære nomenklaturen, før vi starter underproceduren.
Ok, lad os se på eksemplet på SLEEP-funktionen nu.
Kode:
Sub Pause_Example2 () Dim StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub

For det første har vi deklareret to variabler som streng.
Dim StartTime As String Dim EndTime As String
Then we have assigned the TIME excel function to the StartTime variable. TIME function returns the current time as per system.
StartTime = Time
Then we have assigned the same to show in the message box.
MsgBox StartTime
Then I have applied the SLEEP function as Sleep (10000).
Here 10000 is milliseconds, which is equal to 10 seconds in VBA.
Then, at last, I have assigned the one more TIME function to the variable EndTime.
Now again, I have written a code to show the time.
EndTime = Time
This will show the difference between start time and end time.
Now I will execute the code and see what the start time is.

When I execute the code, my system time is 13:40:48, and now my code will sleep for 10 seconds. In the end, my time is as follows.

So, like this, we can pause the code from executing it for a specified amount of time.