Pauzirajte pokretanje VBA koda
VBA Pauza koristi se za zaustavljanje izvršenja koda određeno vrijeme, a za zaustavljanje koda u VBA koristimo metodu application.wait.
Kada gradimo velike VBA projekte nakon što smo nešto izveli, možda ćemo trebati pričekati neko vrijeme da bismo obavili druge zadatke. U takvim scenarijima, kako zaustaviti makro kod da bi obavio svoj zadatak? VBA kôd možemo pauzirati na određeno vremensko razdoblje pomoću dvije funkcije, a te su funkcije "Čekaj" i "Spavaj".

Kako zaustaviti kod pomoću metode čekanja?
"Čekaj" je funkcija koju koristimo u VBA da zadržimo makronaredbu pokrenutu određeno vrijeme. Primjenjujući ovu funkciju, moramo spomenuti do kada bi naš kod trebao pričekati.
Na primjer, ako izvršavate kôd u 13:00:00, ako navedete vrijeme kao "13:15:00", tada će makronaredba biti aktivna 15 minuta.
Sada, pogledajte argument funkcije WAIT u VBA.

U argumentu vremena moramo spomenuti u koje vrijeme bi naš kod trebao zastati ili pričekati.
Na primjer, pogledajte donji VBA kod.
Kodirati:
Sub Pauza_Primjer1 () Raspon ("A1"). Vrijednost = "Zdravo" Raspon ("A2"). Vrijednost = "Dobrodošli" Aplikacija. Pričekajte ("13:15:00") Raspon ("A3"). Vrijednost = " Za VBA "Kraj Sub

Zapamtite, dok pokrećem ovaj kod, moje sistemsko vrijeme je 13:00:00. Čim pokrenem kod, on će izvršiti prva dva retka, tj
Raspon ("A1"). Vrijednost = "Pozdrav" i Raspon ("A2"). Vrijednost = "Dobrodošli"
Ali ako pogledate sljedeći redak, piše Application.Wait ("13:15:00"), pa će nakon izvršavanja zadataka tih linija moj makro pauzirati 15 minuta, tj. Od 13:00:00, pričekat ću dok vrijeme mog sustava ne dosegne 13:15:01.
Jednom kada vrijeme sustava dosegne to vrijeme, izvršit će preostale retke koda.
Raspon ("A3"). Vrijednost = "Za VBA"
Međutim, ovo nije najbolji način vježbanja koda pauze. Recimo da kôd izvodite u različito vrijeme, a zatim trebamo koristiti funkciju SADA VBA s funkcijom VRIJEME.
Sada funkcija vraća trenutni datum i vrijeme prema sustavu na kojem radimo.
Vrijednost funkcije VRIJEME zadržava vrijeme od 00:00:00 do 23:59:29.
Ok, pretpostavimo da moramo pauzirati kôd na 10 minuta kad god ga pokrenemo, a zatim možemo koristiti donji kod.
Kodirati:
Sub Pauza_Primjer1 () Raspon ("A1"). Vrijednost = "Pozdrav" Raspon ("A2"). Vrijednost = "Dobrodošli" aplikacija. Pričekajte (Sada () + Vremenska vrijednost ("00:00:10")) Raspon (" A3 "). Value =" Za VBA "Kraj Sub

Ovo je slično prethodnom kodu, ali jedina je razlika što smo dodali funkciju SADA I VRIJEME.
Kad god pokrenemo ovaj kôd, on će zadržati ili zaustaviti izvršenje 10 minuta.
Kako pauzirati VBA kod pomoću metode spavanja?
Spavanje je složena funkcija u VBA-u jer nije ugrađena funkcija. Budući da nije ugrađen da bi ga učinio dostupnim za upotrebu, moramo dodati donji kod na vrh našeg modula.
Kodirati:
#Ako VBA7 tada javno izjavi PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'za 64-bitne sustave #Else Javno izjavi Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If' za 32 bitne sustave
Jednostavno morate kopirati gornji kod i zalijepiti ga na vrh modula.

Razlog zašto trebamo dodati gornji kôd jer je SLEEP VBA funkcija predstavljena u Windows DLL datotekama, pa moramo deklarirati nomenklaturu prije nego započnemo potproceduru.
Ok, pogledajmo sada primjer funkcije SLEEP.
Kodirati:
Sub Pauza_Primjer2 () Zatamni vrijeme početka kao niz Zatamni kraj vremena kao niz Početak vremena = vrijeme MsgBox StartTime stanje mirovanja (10000) Kraj vremena = vrijeme MsgBox Kraj vremena Kraj

Prvo smo dvije varijable proglasili kao String.
Priguši vrijeme početka kao niz Priguši vrijeme početka kao niz
Tada smo dodijelili funkciju TIME excel varijabli StartTime. Funkcija TIME vraća trenutno vrijeme prema sustavu.
Vrijeme početka = Vrijeme
Zatim smo dodijelili isto za prikaz u okviru za poruku.
MsgBox StartTime
Tada sam primijenio funkciju SLEEP kao stanje mirovanja (10000).
Ovdje je 10000 milisekundi, što je jednako 10 sekundi u VBA.
Tada sam napokon dodijelio još jednu funkciju TIME varijabli EndTime .
Sad sam opet napisao kod za prikaz vremena.
Vrijeme završetka = Vrijeme
Ovo će pokazati razliku između vremena početka i završetka.
Sada ću izvršiti kod i vidjeti koliko je vrijeme početka.

Kada izvršim kôd, moje sistemsko vrijeme je 13:40:48, a sada će moj kôd spavati 10 sekundi. Na kraju, moje vrijeme je sljedeće.

Dakle, ovako, možemo zaustaviti izvršenje koda određeno vrijeme.