VBA DoEvents | Hvordan og når skal DoEvents-funksjonen brukes?

Excel VBA DoEvents-funksjon

Ved hjelp av VBA DoEvents kan vi få koden til å kjøres i bakgrunnen og samtidig tillate oss å jobbe med excel og annen applikasjonsprogramvare. DoEvents lar oss ikke bare jobbe med annen programvare, men vi kan også avbryte kjøringen av koden.

DoEvents-funksjonen overfører kontrollen til operativsystemet til datamaskinen vi jobber med.

Hvordan bruke DoEvents Funksjon?

Det kreves en stor mengde VBA-kode når kravet er stort. I disse tilfellene henger og stopper excel i noen tid, og til og med ikke svarer.

Du kan laste ned denne VBA DoEvents Excel-malen her - VBA DoEvents Excel-mal

For et eksempel se koden nedenfor.

Kode:

 Sub DoEvents_Example1 () Dim i så lenge for i = 1 til 100000 Range ("A1"). Verdi = i Neste i End Sub 

Ovennevnte kode vil sette inn serienumre fra 1 til 100000. Det tar lett mer enn et minutt å utføre oppgaven. Under utførelsen henger excel i betydelig tid for å fullføre oppgaven. I løpet av denne tiden viser excel meldingen som “Excel svarer ikke”.

Videre har vi ikke tilgang til regnearket vi jobber med. Dette er en frustrerende ting, hvordan kan vi gjøre at Excel-regnearket skal være tilgjengelig for arbeid mens koden kjører bak skjermen.

Dette kan oppnås ved å legge til en VBA DoEvents-funksjon .

Kode:

 Sub DoEvents_Example1 () Dim i så lenge for i = 1 til 100000 Range ("A1"). Verdi = i DoEvents Neste i End Sub 

I det øyeblikket vi legger til funksjonen DoEvents i kode, får vi tilgang til Excel-regneark.

Ovenfra kan vi se at koden kjører, men vi får tilgang til regnearket.

Avbryt koden som kjører

Når koden kjører bak skjermen, kan vi legge til rader, kolonner og slette det samme, vi kan gi nytt navn til arket, og vi kan også gjøre mange andre ting. I det øyeblikket vi legger til DoEvents, får den VBA-koden til å løpe raskt og lar oss slå av at den nevnte oppgaven kjører for seg selv.

  • En av farene ved DoEvents-funksjonen er når vi bytter regneark eller arbeidsbøker, overskriver den de aktive arkverdiene.
  • En annen fare er at hvis vi legger inn noen verdi i cellen, stopper kodeutførelsen, og den gir oss ikke engang beskjed.
Merk : Til tross for de ovennevnte farene ved DoEvents, er det fortsatt en praktisk funksjon. Vi kan bruke DoEvents som en del av feilsøkingsprosessen når vi prøver å fikse feil av koden vi har skrevet.