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-malFor 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.