Začasno zaustavite delovanje kode VBA
VBA Pause se uporablja za zaustavitev izvajanja kode za določen čas in za zaustavitev kode v VBA uporabljamo metodo application.wait.
Ko po nečem izdelamo velike projekte VBA, bomo morda morali počakati nekaj časa, da opravimo druge naloge. Kako v takih scenarijih zaustavimo kodo makra, da opravi svojo nalogo? Kodo VBA lahko zaustavimo za določeno časovno obdobje z uporabo dveh funkcij, ki sta »Čakanje« in »Spanje«.

Kako zaustaviti kodo z uporabo metode čakanja?
»Čakanje« je funkcija, ki jo v VBA uporabljamo za zadrževanje makra, ki deluje določen čas. Z uporabo te funkcije moramo omeniti, do kdaj naj naša koda počaka.
Če na primer izvajate kodo ob 13:00:00, če navedete čas kot »13:15:00«, bo makro deloval 15 minut.
Zdaj pa poglejte argument funkcije WAIT v VBA.

V argumentu za čas moramo omeniti, kdaj naj se naša koda zaustavi ali počaka.
Na primer, poglejte spodnjo kodo VBA.
Koda:
Sub Pause_Example1 () Obseg ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " V VBA "End Sub

Ne pozabite, da je med izvajanjem te kode moj sistemski čas 13:00:00. Takoj, ko zaženem kodo, bo izvedla prvi dve vrstici, tj
Obseg ("A1"). Value = "Hello" & Range ("A2"). Value = "Welcome"
Če pa pogledate naslednjo vrstico, piše Application.Wait (»13:15:00«), tako da bo moj makro po izvedbi teh nalog vrstic 15 minut zaustavljen, tj. Od 13:00:00 počakal, dokler moj sistemski čas ne bo dosegel 13:15:01.
Ko moj sistemski čas doseže ta čas, bo izvedel preostale vrstice kode.
Obseg ("A3"). Vrednost = "VBA"
Vendar to ni najboljši način vadbe kode za premor. Recimo, da kodo izvajate ob različnih časih, nato pa moramo uporabiti funkcijo ZDAJ VBA s funkcijo TIME VALUE.
Funkcija Now vrne trenutni datum in čas glede na sistem, na katerem delamo.
Funkcija TIME Value ima čas od 00:00:00 do 23:59:29.
Ok, predpostavimo, da moramo kodo začasno ustaviti za 10 minut, kadar koli jo zaženemo, potem lahko uporabimo spodnjo kodo.
Koda:
Sub Pause_Example1 () Obseg ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Value =" VBA "End Sub

To je podobno prejšnji kodi, vendar je edina razlika v tem, da smo dodali funkcijo NOW & TIME VALUE.
Kadarkoli zaženemo to kodo, zadrži ali zaustavi izvajanje 10 minut.
Kako zaustaviti kodo VBA z uporabo metode spanja?
Spanje je v VBA zapletena funkcija, ker ni vgrajena funkcija. Ker ni vgrajena, da bi bila na voljo za uporabo, moramo na vrh modula dodati spodnjo kodo.
Koda:
#If VBA7 Potem javno izjavi PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'za 64-bitne sisteme #Else Javno izjavi Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If' za 32 bitne sisteme
Prekopirati morate zgoraj navedeno kodo in jo prilepiti na vrh modula.

Razlog, zakaj moramo dodati zgornjo kodo, ker je SLEEP funkcija VBA, predstavljena v datotekah DLL Windows, zato moramo nomenklaturo razglasiti, preden začnemo s podproceduro.
Ok, poglejmo zdaj primer funkcije SLEEP.
Koda:
Sub Pause_Example2 () Dim StartTime kot niz Dim DimTime kot niz StartTime = čas MsgBox StartTime Sleep (10000) EndTime = čas MsgBox EndTime End Sub

Najprej smo dve spremenljivki razglasili za niz.
Zatemni čas začetka kot niz Zatemni čas začetka kot niz
Nato smo spremenljivki StartTime dodelili funkcijo TIME excel. Funkcija TIME vrne trenutni čas po sistemu.
StartTime = Čas
Nato smo isto določili za prikaz v polju za sporočila.
MsgBox StartTime
Potem sem funkcijo SLEEP uporabil kot stanje spanja (10000).
Tu je 10000 milisekund, kar je v VBA 10 sekund.
Potem sem nazadnje spremenljivki EndTime dodelil še eno funkcijo TIME .
Zdaj sem napisal kodo, ki prikazuje čas.
EndTime = čas
To bo pokazalo razliko med začetnim in končnim časom.
Zdaj bom izvedel kodo in videl, kakšen je začetni čas.

Ko zaženem kodo, je moj sistemski čas 13:40:48 in zdaj bo moja koda spala 10 sekund. Na koncu je moj čas naslednji.

Tako lahko tako zaustavimo izvajanje kode za določen čas.