Excel VBA DoEvents-funksjon

Når vi skriver enorme koder, faller vi alltid i fellen til VBA. Når koden er stor, tar VBA sin egen tid å fullføre løpe- og utførelsesprosessen. Det kan ta tid fra et minutt til flere minutter. Dette er tidsrammen når alle blir irriterte. Og vi kan ikke gjøre noe annet i denne tidsperioden. Men for å unngå dette, har vi en funksjon i VBA kalt DoEvents. Ved hjelp av DoEvents kan vi kjøre koden i bakgrunnen og samtidig kan vi også gjøre andre slags ting. Vi kan ikke bare jobbe med annet verktøy eller programvare, men vi kan også avbryte koden eller stoppe i mellom utførelsesprosessen.

Når vi har skrevet DoEvents i koden, vil vi, bortsett fra VBA, også ha kontrollen over arbeidet vi ønsker å gjøre. Det gode med DoEvents er at det ikke har noen slags syntaks å skrive. Vi kan plassere Doevents direkte der vi ønsker å ta kontroll over VBA og utføre oppgavene etter vårt behov.

Hvordan bruker jeg DoEvents-funksjonen i Excel VBA?

Nedenfor er de forskjellige eksemplene du kan bruke DoEvents-funksjonen i Excel med VBA-kode.

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

Excel VBA DoEvents - Eksempel nr. 1

Selv om vi skal utføre DoEvents, trenger vi et enormt sett med data der vi kan se hvordan koden blir avbrutt. Så vi bruker en sløyfe, der tallene blir brukt til koden er fullført. Følg trinnene nedenfor for å gjøre dette:

Trinn 1: Åpne en modul i VBA fra Sett inn menyfanen som vist nedenfor.

Trinn 2: Skriv underprosessen til VBA DoEvents, eller vi kan velge hvilket som helst navn for å definere koden etter vårt behov.

Kode:

 Sub VBA_DoEvents () Slutt Sub 

Trinn 3: Definer nå en variabel i hvilket som helst navn med datatypene Long. Hensikten med å betrakte datatypen som lang er fordi vi tar noen lengde med data vi ønsker, som ikke er mulig hvis vi vurderer heltall.

Kode:

 Sub VBA_DoEvents () Dim A As Long End Sub 

Trinn 4: Nå åpner du en For-Next-loop der vi vil sette betingelsene.

Kode:

 Sub VBA_DoEvents () Dim A Like Long For Next A End Sub 

Trinn 5: Tenk på rekkevidden til et antall av ditt valg som kan sees å bli implementert. Her tar vi området 1 til 2000 i definert variabel A.

Kode:

 Sub VBA_DoEvents () Dim A Like Long For A = 1 To 20000 Next A End Sub 

Trinn 6: Når vi har definert rekkevidden av tall, vil vi velge området med celler der vi vil se endringene i tallene som vi valgte ovenfor. La oss si at området med celler er A1 til A5. Dette kan være en enkelt celle også.

Kode:

 Sub VBA_DoEvents () Dim A like lang for A = 1 til 20000 Range ("A1: A5"). Verdi = A Neste A End Sub 

Trinn 7: Kjør nå koden ved å klikke på Spill-knappen under menylinjen.

Vi får se, koden er fullført ved å trykke tallene fra 1 til 20000, men vi kunne ikke stoppe den.

Trinn 8: For å få full kontroll over koden, bruk DoEvents etter sløyfeforholdene som vist nedenfor.

Kode:

 Sub VBA_DoEvents () Dim A Like Long For A = 1 To 20000 Range ("A1: A5"). Value = A DoEvents Next A End Sub 

Trinn 9: Kjør koden igjen. Og på dette tidspunktet prøver vi å stoppe koden ved å klikke på stoppknappen, vi vil merke at koden vil stoppes mellom prosessene før fullføringen av prøven på 20000.

Excel VBA DoEvents - Eksempel nr. 2

Det er en annen type prosess for implementering av DoEvents. Men også for dette trenger vi enorme koder som vist i eksempel-1. Følg trinnene nedenfor for å gjøre dette:

Trinn 1: Skriv delprosessen til VBA DoEvents som vist nedenfor.

Kode:

 Sub VBA_DoEvents2 () Slutt Sub 

Trinn 2: Åpne en For-neste-sløyfe direkte uten å definere en variabel.

Kode:

 Sub VBA_DoEvents2 () For neste slutt Sub 

Trinn 3: Velg et nummerområde vi vil se løpe. La rekkevidden være 1 til 20000 som eksempel 1.

Kode:

 Sub VBA_DoEvents2 () For A = 1 til 20000 Next End Sub 

Trinn 4: Legg nå alt arbeid for utdata direkte, la oss si at utdataene er som vist nedenfor. Og verdiområdet vil være +1 av faktisk verdi.

Kode:

 Sub VBA_DoEvents2 () For A = 1 til 20000 Output = Output + 1 Next End Sub 

Trinn 5: Velg nå området der vi vil se utdataene. La cellen være A1.

Kode:

 Sub VBA_DoEvents2 () For A = 1 til 20000 Output = Output + 1 Range ("A1"). Verdi = Output Next End Sub 

Trinn 6: Og omsider legger vi DoEvents på slutten av For loop-tilstanden.

Kode:

 Sub VBA_DoEvents2 () For A = 1 til 20000 Output = Output + 1 Range ("A1"). Verdi = Output DoEvents Next End Sub 

Trinn 7: Og kjør deretter koden ved å trykke på F5-tasten. Vi får se, vi kan gjøre hva som helst selv når koden kjører. For demonstrasjon har jeg valgt cellene B1 og C1. Tallene nådde bare 4348, noe som er ganske mindre enn grensen vi setter.

Trinn 8: Hvis vi fjerner DoEvents og kjører koden, vil vi ikke kunne gjøre noe før koden er ferdig med prosessen. La oss se det også.

Kode:

 Sub VBA_DoEvents2 () For A = 1 til 20000 Output = Output + 1 Range ("A1"). Verdi = Output Next End Sub 

Trinn 9: Kjør nå koden igjen. Som vi kan se, mens vi prøvde å klikke på Stopp, stoppet ikke koden. Og Play-funksjonen var fremdeles PÅ.

Fordeler og ulemper med Excel VBA DoEvents

  • Vi kan jobbe med hvilket som helst verktøy eller fil i bakgrunnen mens VBA-koden kjører parallelt.
  • Å bruke DoEvents stopper ikke oss for å gjøre det arbeidet vi ønsker når koden kjører.
  • Den overskriver arbeidsarket eller arbeidsboken når vi veksler mellom de forskjellige regnearkene eller arbeidsboken.
  • Koden stopper når vi skriver eller bytter celle et øyeblikk, og vi får ikke beskjed.

Ting å huske

  • Hvis vi gjør noe uten å bruke DoEvents, er det en stor mulighet for at koden gjør at systemet og filen fryses. Og at vi enten vil gjenoppta filene når koden er fullstendig kjørt eller krasje filen ved flere klikk.
  • Vi kan se endringen i prosessen mens vi jobber med det andre arbeidet samtidig.
  • Når vi har fullført koden, lagrer du filen i makroaktivert Excel-format for å unngå å miste kode.
  • Prøv å bruke koden i et stort og stort sett med koding, der får vi se den faktiske implementeringen og bruken.

Anbefalte artikler

Dette er en guide til VBA DoEvents. Her diskuterer vi hvordan du bruker DoEvents-funksjonen i Excel ved hjelp av VBA-kode sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Hvordan bruker StrConv i Excel VBA?
  2. Konverter tall til tekst i Excel (eksempler)
  3. VBA ByRef-funksjon (eksempler med Excel-mal)
  4. Excel SUMIFS med datoer | Excel-mal

Kategori: