VBA DoEvents | Cum și când să utilizați funcția DoEvents?

Funcția Excel VBA DoEvents

Cu ajutorul VBA DoEvents , putem face ca codul să ruleze în fundal și simultan ne permite să lucrăm și cu Excel și alte aplicații software. DoEvents nu numai că ne permite să lucrăm cu alte programe, ci putem întrerupe și funcționarea codului.

Funcția DoEvents trece controlul către sistemul de operare al computerului la care lucrăm.

Cum se utilizează funcția DoEvents?

O cantitate mare de cod VBA este necesară atunci când cerința este imensă. În aceste cazuri, Excel se blochează și se oprește pentru o perioadă de timp și chiar uneori nu mai răspunde.

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

Pentru un exemplu, consultați codul de mai jos.

Cod:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i Next i End Sub 

Codul de mai sus va introduce numere de serie de la 1 la 100000. Va dura cu ușurință mai mult de un minut pentru a executa sarcina. În timpul execuției, Excel se blochează pentru o perioadă considerabilă de timp pentru a finaliza sarcina. În acest timp excel afișează mesajul ca „Excel nu răspunde”.

Mai mult, nu putem accesa foaia de lucru la care lucrăm. Acesta este un lucru frustrant, atunci cum facem ca foaia de lucru Excel să fie disponibilă pentru a funcționa în timp ce codul rulează în spatele ecranului.

Acest lucru poate fi realizat prin adăugarea unei funcții VBA DoEvents .

Cod:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

În momentul în care adăugăm funcția DoEvents în cod, putem accesa foaia de lucru Excel.

De sus putem vedea că codul rulează, dar putem accesa foaia de lucru.

Întrerupeți funcționarea codului

Când codul rulează în spatele ecranului, putem adăuga rânduri, coloane și le putem șterge la fel, putem redenumi foaia și putem face și multe alte lucruri. În momentul în care adăugăm DoEvents, acesta face ca codul vba să ruleze rapid și ne permite să aflăm că sarcina menționată rulează pentru sine.

  • Unul dintre pericolele funcției DoEvents este când schimbăm foile de lucru sau registrele de lucru, aceasta suprascrie valorile foii active.
  • Un alt pericol este, dacă introducem orice valoare în celulă, executarea codului se oprește și nici măcar nu ne anunță.
Notă : în ciuda pericolelor de mai sus ale DoEvents, este încă o funcție la îndemână. Putem folosi DoEvents ca parte a procesului de depanare atunci când încercăm să remediem erorile codului pe care l-am scris.