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 codul de la executare pentru o anumită perioadă de timp, este foarte asemănător 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 executarea codului ș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”, iar al doilea este metoda „Wait”. În articolul nostru anterior, am discutat despre metoda „VBA Sleep” pentru a întrerupe codul VBA.

„Așteptați”, așa cum spune și numele, va păstra 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 în cele din urmă, 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:

#If VBA7 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'Pentru sistemele pe 64 de biți #Else 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

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 timp ca acesta este periculos, deoarece nu lucrăm întotdeauna de la 14:30:00. Acesta variază tot timpul.

Să spunem ori de câte ori rulați codul. Doriți să așteptați 2 minute, cum vă referiți la acest lucru în cod?

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 din timp, apăsând tasta Esc sau Break Key.

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 SLEEP VBA 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 milisecunde. Putem întârzia doar în secunde întregi.

Articole interesante...