Funcția Excel VBA DoEvents

Când scriem coduri uriașe, cădem mereu în capcana VBA. Când codul este mare, VBA își ia timpul necesar pentru a termina procesul de execuție și execuție. Ceea ce poate dura timp de la un minut la câteva minute. Acesta este intervalul de timp în care toată lumea se irită. Și nu putem face altceva în această perioadă de timp. Dar pentru a evita acest lucru, avem o funcție în VBA numită DoEvents. Cu ajutorul DoEvents, putem rula codul în fundal și simultan putem face și alte tipuri de lucruri. Nu putem lucra doar pe alte instrumente sau software, ci putem întrerupe codul sau opri între procesul de execuție.

Odată ce introducem DoEvents în cod, apoi, în afară de VBA, vom avea și controlul asupra muncii pe care vrem să o facem. Lucrul bun despre DoEvents este că nu are niciun fel de sintaxă pentru a scrie. Putem plasa direct Doevents acolo unde dorim să preluăm controlul asupra VBA și să îndeplinim sarcinile conform nevoilor noastre.

Cum se utilizează funcția DoEvents în Excel VBA?

Mai jos sunt diferite exemple de utilizare a funcției DoEvents în excel folosind codul VBA.

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

Excel VBA DoEvents - Exemplul # 1

Deși pentru a executa DoEvents avem nevoie de un set uriaș de date în care putem vedea cum se întrerupe codul. Așadar, vom folosi o buclă, în care numerele vor fi aplicate până la finalizarea codului. Pentru aceasta, urmați pașii de mai jos:

Pasul 1: Deschideți un modul în VBA din fila Meniu Insert, așa cum se arată mai jos.

Pasul 2: Scrieți subprocedura VBA DoEvents sau putem alege orice nume pentru a defini codul conform nevoilor noastre.

Cod:

 Sub VBA_DoEvents () End Sub 

Pasul 3: Acum definiți o variabilă în orice nume cu tipuri de date Long. Scopul de a considera tipul de date ca fiind lung este pentru că vom lua orice lungime de date pe care le dorim, ceea ce nu este posibil dacă avem în vedere Integer.

Cod:

 Sub VBA_DoEvents () Dim A As Long End Sub 

Pasul 4: Acum deschideți o buclă For-Next unde vom pune condițiile.

Cod:

 Sub VBA_DoEvents () Dim A Atâta timp Pentru Următorul Sub End 

Pasul 5: Luați în considerare gama de alegeri care poate fi văzută implementând. Aici luăm intervalul 1 până la 2000 în variabila A definită.

Cod:

 Sub VBA_DoEvents () Dim A Atâta timp cât A = 1 Până la 20000 Următorul A Sub 

Pasul 6: Odată ce definim intervalul de numere, vom selecta gama de celule în care vom vedea modificările numerelor pe care le-am ales mai sus. Să spunem că gama de celule este de la A1 la A5. Aceasta ar putea fi și o singură celulă.

Cod:

 Sub VBA_DoEvents () Dim A cât timp pentru A = 1 până la 20000 Interval ("A1: A5"). Valoare = A Următorul A Sub 

Pasul 7: Acum rulați codul făcând clic pe butonul Redare situat sub bara de meniu.

Vom vedea, codul s-a finalizat prin tipărirea numerelor de la 1 la 20000, dar nu am putut să-l oprim.

Pasul 8: Pentru a obține controlul complet al codului, aplicați DoEvents după condițiile de buclă, așa cum se arată mai jos.

Cod:

 Sub VBA_DoEvents () Dim A cât timp pentru A = 1 până la 20000 Interval ("A1: A5"). Valoare = A DoEvents Next A End Sub 

Pasul 9: Acum executați din nou codul. Și în acest moment încercăm să oprim codul făcând clic pe butonul Stop, vom observa că codul va fi oprit între procese înainte de finalizarea procesului 20000.

Excel VBA DoEvents - Exemplul # 2

Există un alt tip de proces pentru implementarea DoEvents. Dar și pentru aceasta, vom avea nevoie de cod uriaș, așa cum se vede în exemplul 1. Pentru aceasta, urmați pașii de mai jos:

Pasul 1: Scrieți subprocedura VBA DoEvents așa cum se arată mai jos.

Cod:

 Sub VBA_DoEvents2 () End Sub 

Pasul 2: Deschideți direct o buclă For-Next fără a defini o variabilă.

Cod:

 Sub VBA_DoEvents2 () Pentru următorul capitol 

Pasul 3: Alegeți un interval de numere pe care îl vom vedea rulând. Fie intervalul de la 1 la 20000 la fel ca exemplul 1.

Cod:

 Sub VBA_DoEvents2 () Pentru A = 1 Până la 20000 Următorul Sub 

Pasul 4: Acum puneți direct orice lucru pentru ieșire, să zicem că ieșirea este așa cum este arătat mai jos. Și intervalul de valori va fi +1 din valoarea reală.

Cod:

 Sub VBA_DoEvents2 () Pentru A = 1 Până la 20000 Ieșire = Ieșire + 1 Următorul Sub 

Pasul 5: Acum selectăm intervalul în care dorim să vedem ieșirea. Fie celula să fie A1.

Cod:

 Sub VBA_DoEvents2 () Pentru A = 1 Până la 20000 Ieșire = Ieșire + 1 Interval ("A1"). Valoare = Ieșire Următorul Următor Sub 

Pasul 6: și, în sfârșit, vom pune DoEvents la sfârșitul condiției Pentru buclă.

Cod:

 Sub VBA_DoEvents2 () Pentru A = 1 Până la 20000 Ieșire = Ieșire + 1 Interval ("A1"). Valoare = Ieșire DoEvents Următorul Sub 

Pasul 7: apoi executați codul apăsând tasta F5. Vom vedea, putem face orice chiar și atunci când codul rulează. Pentru demonstrație, am selectat celulele B1 și C1. Numerele au atins doar 4348, ceea ce este mult mai mic decât limita stabilită.

Pasul 8: Dacă eliminăm DoEvents și rulăm codul, nu vom putea face nimic până când codul nu își va finaliza procesul. Să vedem și asta.

Cod:

 Sub VBA_DoEvents2 () Pentru A = 1 Până la 20000 Ieșire = Ieșire + 1 Interval ("A1"). Valoare = Ieșire Următorul Următor Sub 

Pasul 9: Acum rulați din nou codul. După cum putem vedea, în timp ce am încercat să facem clic pe Stop, codul nu s-a oprit. Iar funcția Play a fost încă ACTIVĂ.

Pro și contra Excel VBA DoEvents

  • Putem lucra la orice instrument sau fișier în fundal, în timp ce codul VBA va funcționa în paralel.
  • Folosirea DoEvents nu ne oprește să facem munca pe care o dorim atunci când se execută codul.
  • Suprascrie fișa de lucru sau fișa de lucru când schimbăm între diferite foi de lucru sau carte de lucru.
  • Codul se oprește când scriem sau schimbăm celula pentru un moment și nu primim notificări.

Lucruri de amintit

  • Dacă facem ceva fără a aplica DoEvents, există posibilitatea majoră ca codul să facă sistemul și fișierul să fie înghețați. Și că vom relua fișierele odată ce codul va fi complet executat sau va zdrobi fișierul cu mai multe clicuri.
  • Putem vedea schimbarea procesului în timp ce lucrăm la cealaltă lucrare simultan.
  • După ce completăm codul, salvați fișierul în format excel activat macro pentru a nu pierde codul.
  • Încercați să aplicați codul într-un set uriaș și mare de codificare, acolo vom vedea implementarea și utilizarea reală.

Articole recomandate

Acesta este un ghid pentru VBA DoEvents. Aici vom discuta despre modul de utilizare a funcției DoEvents în Excel, folosind codul VBA, împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Cum se utilizează StrConv în Excel VBA?
  2. Conversia numerelor în text în Excel (exemple)
  3. Funcția VBA ByRef (exemple cu șablonul Excel)
  4. SUMIFE Excel cu date | Șablon Excel

Categorie: