Funcția de așteptare VBA | Cum se folosește metoda de așteptare Excel VBA?

Funcția de așteptare Excel VBA

VBA Wait este o funcție încorporată utilizată pentru a întrerupe executarea codului pentru o perioadă de timp specificată, este foarte asemănătoare cu ceea ce facem într-o comandă de repaus și pentru a întrerupe un cod folosim metoda application.wait.

Unele dintre coduri necesită cu ceva timp înainte de a trece la următoarea linie de cod din cauza altor sarcini care trebuie finalizate. În aceste cazuri, trebuie să oprim codul care urmează să fie executat și să ne oprim pentru o perioadă de timp, apoi să continuăm cu executarea. Putem întrerupe codul pentru a fi executat în două moduri, primul este metoda „Sleep” și al doilea este metoda „Wait”. În articolul nostru anterior, am discutat despre metoda „VBA Sleep” pentru a întrerupe codul VBA.

„Așteptați”, deoarece numele în sine spune că va conține codul macro pentru a fi executat într-un interval de timp specificat. Folosind această metodă, trebuie să specificăm ora în care codul nostru trebuie să fie întrerupt, vom vedea exemple în continuare.

Sintaxa funcției WAIT este următoarea.

Trebuie să menționăm perioada de timp în care codul nostru ar trebui să fie întrerupt. După cum puteți vedea la sfârșit, scrie Boolean, aceasta înseamnă că returnează rezultatul ca valori booleene, adică TRUE sau FALSE.

Până când a sosit ora specificată, scrie FALS, iar în momentul specificat a sosit, revine ADEVĂRAT.

Acest lucru este diferit de funcția SLEEP deoarece WAIT este o funcție încorporată în care SLEEP este o funcție Windows. Înainte de a accesa funcția SLEEP, trebuie să menționăm codul de mai jos în partea de sus a modulului. WAIT nu necesită acest lucru.

Cod:

# Dacă VBA7, atunci publicul declară PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'pentru sistemele pe 64 de biți # Altele Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' Pentru sistemele pe 32 de biți se încheie dacă 

Exemple de utilizare a funcției de așteptare Excel VBA

Puteți descărca acest șablon Excel VBA Wait Excel aici - Șablon Excel VBA Wait Excel

Exemplul nr. 1

Să presupunem că lucrați într-o jumătate de zi excel la 14:30:00 și doriți ca codul dvs. să fie întrerupt până când ora devine 14:40:00. Puteți utiliza codul de mai jos.

Cod:

 Sub Wait_Example1 () Application.Wait "14:40:00" End Sub 

Codul vă va opri funcționarea excel până când ora ajunge la 14:40:00 în sistemul dvs. de operare. Acordarea unui astfel de timp este periculos, deoarece nu lucrăm întotdeauna începând cu ora 14:30, dar variază tot timpul.

Să presupunem că ori de câte ori rulați codul pe care doriți să îl așteptați 2 minute, cum se referă acest lucru în codul dvs.?

Deci, putem folosi funcția VBA ACUM cu funcția TIME VALUE pentru a introduce ora specificată din ora curentă.

Doar pentru a vă reaminti funcția ACUM () returnează data și ora curente conform sistemului computerului. Funcția TIMEVALUE reprezintă ora de la 00:00:00 la 23:59:59 adică 23:59:59 PM în format de 24 de ore. Convertește valoarea șirului într-o valoare de timp.

De exemplu, ACUM () + TIMEVALUE (00:02:30) înseamnă Ora curentă + 2 min 30 sec.

Dacă ora curentă este 14:25:30, atunci devine 14:28:00.

Pentru a opri sau a întrerupe codul dvs. de la executarea de la ora curentă la următoarele 10 minute, puteți utiliza codul de mai jos.

Cod:

 Sub Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub 

Este important să utilizați o funcție ACUM () pentru o pauză precisă, în caz contrar, există șanse ca registrul dvs. de lucru Excel să fie întrerupt până la miezul nopții. Cu toate acestea, putem ieși din metoda de pauză în orice moment al timpului apăsând tasta Esc sau tasta Break.

Exemplul nr. 2

Așteptați 10 secunde de fiecare dată când rulează bucla

Metoda de așteptare este bine utilizată cu buclele. Există situații în care poate fi necesar să așteptați 10 secunde de fiecare dată când rulează bucla. De exemplu, uitați-vă la datele de mai jos.

Pentru a calcula Profitul = (Vânzări - Cost) doriți să creați o buclă și după fiecare buclă, doriți să așteptați 10 secunde pentru a verifica dacă rezultatul este corect sau nu. Codul de mai jos va face acest lucru.

Cod:

 Sub Așteptare_Exemplu3 () Dim k Întreg pentru k = 2 până la 9 celule (k, 4). Valoare = Celule (k, 2) - Celule (k, 3) Aplicație. Așteptați (Acum () + Valoare de timp ("00:00 : 10 ")) Următorul k Sfârșit Sub 

Acest cod va calcula coloana profitului rând cu rând. După finalizarea primei linii, va aștepta 10 secunde înainte de a calcula următoarea linie.

VBA Sleep vs VBA Wait

VBA SLEEPVBA AȘTEPTĂ
Nu este o funcție încorporată VBA, are nevoie de un cod special pentru a accesa această funcție.Este o funcție încorporată VBA, nu necesită niciun cod special pentru a accesa această funcție.
Somnul necesită milisecunde ca interval de timp.Așteptați necesită un interval de timp regulat.
Putem întârzia codul în milisecundePutem întârzia doar în secunde întregi.