Funcția Excel VBA DoEvents
Cu ajutorul VBA DoEvents , putem face 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, uneori, nu mai răspunde.
De exemplu, uitați-vă la 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 insera 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 arată 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 se poate realiza 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.

Din cele de mai 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, 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 atunci când schimbăm foile de lucru sau registrele de lucru și 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ță.