VBA DoEvents | Hvordan og hvornår skal DoEvents-funktionen bruges?

Excel VBA DoEvents-funktion

Ved hjælp af VBA DoEvents kan vi få koden til at køre i baggrunden og samtidig give os mulighed for at arbejde med excel og anden applikationssoftware. DoEvents giver os ikke kun mulighed for at arbejde med anden software, men vi kan også afbryde koden.

DoEvents-funktionen overfører kontrol til operativsystemet på den computer, vi arbejder på.

Hvordan bruges DoEvents-funktionen?

Der kræves en stor mængde VBA-kode, når kravet er stort. I disse tilfælde excel hænger og stopper i nogen tid, og endda undertiden reagerer det ikke.

Du kan downloade denne VBA DoEvents Excel-skabelon her - VBA DoEvents Excel-skabelon

For et eksempel se nedenstående kode.

Kode:

 Sub DoEvents_Example1 () Dim i så længe for i = 1 til 100000 område ("A1"). Værdi = i Næste i Afslut sub 

Ovenstående kode indsætter serienumre fra 1 til 100000. Det tager let mere end et minut at udføre opgaven. Under udførelsen hænger excel i lang tid for at fuldføre opgaven. I løbet af denne periode viser excel beskeden som “Excel svarer ikke”.

Desuden kan vi ikke få adgang til det regneark, vi arbejder på. Dette er en frustrerende ting, så hvordan gør vi Excel-regnearket til at være tilgængeligt til arbejde, mens koden kører bag skærmen.

Dette kan opnås ved at tilføje en VBA DoEvents-funktion .

Kode:

 Sub DoEvents_Example1 () Dim i så længe for i = 1 til 100000 område ("A1"). Værdi = i DoEvents Næste i Afslut sub 

I det øjeblik vi tilføjer funktionen DoEvents i kode, kan vi få adgang til Excel-regneark.

Ovenfra kan vi se, at koden kører, men vi kan få adgang til regnearket.

Afbryd koden, der kører

Når koden kører bag skærmen, kan vi tilføje rækker, kolonne og slette det samme, vi kan omdøbe arket, og vi kan også gøre mange andre ting. I det øjeblik vi tilføjer DoEvents, får det vba-koden til at køre hurtigt og giver os muligheden for, at den nævnte opgave kører for sig selv.

  • En af farerne ved DoEvents-funktionen er, når vi skifter regneark eller projektmapper, overskriver den de aktive arkværdier.
  • En anden fare er, at hvis vi indtaster nogen værdi i cellen, stopper kodekørsel, og den underretter os ikke engang.
Bemærk : På trods af ovenstående farer ved DoEvents er det stadig en praktisk funktion. Vi kan bruge DoEvents som en del af fejlfindingsprocessen, når vi prøver at rette fejl i den kode, vi har skrevet.