Excel VBA funkcija čekanja
VBA Wait je ugrađena funkcija koja se koristi za zaustavljanje izvršavanja koda određeno vrijeme, vrlo je slična onome što radimo u naredbi mirovanja i za pauziranje koda koristimo application.wait metodu.
Neki od kodova zahtijevaju prije prelaska na sljedeći redak koda, zbog drugih zadataka koje treba dovršiti. U tim slučajevima moramo zaustaviti izvršavanje koda i zaustaviti se neko vrijeme, a zatim nastaviti s izvršenjem. Kôd koji možemo izvršiti možemo zaustaviti na dva načina, prvi je metoda "Sleep", a drugi metoda "Wait". U našem ranijem članku razgovarali smo o metodi "VBA Sleep" za zaustavljanje VBA koda.
"Pričekajte" kako samo ime kaže da će zadržati kôd makronaredbe da se izvrši u određenom vremenskom okviru. Korištenjem ove metode trebamo odrediti vrijeme kada bi naš kod trebao zastati, sljedeće ćemo vidjeti primjere.
Sintaksa funkcije WAIT je sljedeća.
Moramo spomenuti količinu vremena koje bi naš kod trebao zaustaviti. Kao što vidite na kraju, kaže Boolean, to znači da rezultat vraća kao Booleove vrijednosti, tj. TRUE ili FALSE.
Dok ne dođe određeno vrijeme, piše FALSE i u trenutku kada stigne određeno vrijeme vraća se TRUE.
To je za razliku od funkcije SLEEP jer je WAIT ugrađena funkcija u kojoj je SLEEP funkcija sustava Windows. Prije nego što pristupimo funkciji SLEEP, moramo spomenuti donji kod na vrhu modula. Ali WAIT ovo ne zahtijeva.
Kodirati:
# Ako je VBA7 tada javno izjavite PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'za 64-bitne sustave # Inače javno objavite Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as Long)' za 32-bitne sustave i završi ako
Primjeri upotrebe funkcije čekanja Excel VBA
Ovaj VBA Wait Excel predložak možete preuzeti ovdje - VBA Wait Excel PredložakPrimjer # 1
Pretpostavimo da radite u Excelu sredinom dana u 14:30:00 i želite da vaš kod bude pauziran dok vrijeme ne postane 14:40:00. Možete koristiti donji kod.
Kodirati:
Sub Wait_Example1 () aplikacija. Pričekajte "14:40:00" Kraj Sub
Kôd će zaustaviti vaš excel da radi sve dok vrijeme ne dosegne 14:40:00 u vašem operativnom sustavu. Osigurati vrijeme poput ovog opasno je jer ne radimo uvijek od 14:30:00 ono se stalno mijenja.
Recimo da kad god pokrenete kôd želite pričekati 2 minute, kako to uputiti u svoj kôd?
Dakle, možemo koristiti funkciju VBA NOW s funkcijom VRIJEME VRIJEME da unesemo određeno vrijeme iz trenutnog vremena.
Samo da vas podsjetim, funkcija SADA () vraća trenutni datum i vrijeme prema vašem računalnom sustavu. Funkcija TIMEVALUE predstavlja vrijeme od 00:00:00 do 23:59:59 tj. 23:59:59 PM u 24-satnom formatu. Pretvara vrijednost niza u vremensku vrijednost.
Za primjer NOW () + TIMEVALUE (00:02:30) znači Trenutno vrijeme + 2 min 30 sek.
Ako je trenutno vrijeme 14:25:30, tada postaje 14:28:00.
Da biste zaustavili ili zaustavili izvršavanje koda od trenutnog vremena do sljedećih 10 minuta, možete koristiti donji kôd.
Kodirati:
Sub Wait_Example2 () aplikacija. Pričekajte (Now () + TimeValue ("00:10:00")) End Sub
Važno je koristiti funkciju NOW () za preciznu pauzu, inače postoje šanse da je vaša excel radna knjiga pauzirana do ponoći. Međutim, iz načina pauze možemo izaći u bilo kojem trenutku pritiskom tipke Esc ili tipke Break.
Primjer # 2
Pričekajte 10 sekundi svaki put kada se petlja pokrene
Metoda čekanja dobro se koristi s petljama. Postoje situacije u kojima ćete možda trebati pričekati 10 sekundi svaki put kada se petlja pokrene. Na primjer, pogledajte podatke u nastavku.
Da biste izračunali dobit = (prodaja - trošak) želite stvoriti petlju i nakon svake petlje želite pričekati 10 sekundi da provjerite je li rezultat točan ili ne. To će učiniti donji kod.
Kodirati:
Sub Wait_Example3 () Dim k kao cjelobrojno za k = 2 do 9 ćelija (k, 4) .Vrijednost = stanice (k, 2) - ćelije (k, 3) Primjena. Pričekajte (Sada () + TimeValue ("00:00 : 10 ")) Sljedeći k Kraj Sub
Ovaj će kôd izračunati stupac dobiti redak po redak. Nakon završetka prvog retka, pričekat će 10 sekundi prije nego što izračuna sljedeći redak.
VBA Spavanje vs VBA Pričekajte
VBA SPAVANJE | VBA pričekajte | |
To nije ugrađena funkcija VBA-a, potreban joj je poseban kôd za pristup ovoj funkciji. | To je VBA ugrađena funkcija, ne zahtijeva poseban kod za pristup ovoj funkciji. | |
Spavanje zahtijeva milisekunde kao vremenski okvir. | Čekanje zahtijeva redoviti vremenski okvir. | |
Kôd možemo odgoditi u milisekundama | Možemo odgoditi samo u cijelim sekundama. |