Excel VBA DoEvents-funktion

Når vi skriver enorme koder, falder vi altid i VBA's fælde. Når koden er stor, tager VBA sin egen tid på at afslutte køre- og eksekveringsprocessen. Hvilket kan tage tid fra et minut til flere minutter. Dette er tidsrammen, hvor alle bliver irriterede. Og vi kan ikke gøre noget andet i denne periode. Men for at undgå dette har vi en funktion i VBA kaldet DoEvents. Ved hjælp af DoEvents kan vi køre koden i baggrunden, og samtidig kan vi også gøre andre slags ting. Vi kan ikke kun arbejde på andet værktøj eller software, men vi kan også afbryde koden eller stoppe i mellem udførelsesprocessen.

Når vi har indtastet DoEvents i koden, så bortset fra VBA, vil vi også have kontrollen med det arbejde, vi vil udføre. Det gode ved DoEvents er, at det ikke har nogen form for syntaks at skrive. Vi kan direkte placere Doevents, hvor vi ønsker at tage kontrol over VBA og udføre opgaverne efter vores behov.

Sådan bruges DoEvents-funktion i Excel VBA?

Nedenfor er de forskellige eksempler til brug af DoEvents-funktion i Excel ved hjælp af VBA-kode.

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

Excel VBA DoEvents - eksempel # 1

Selvom vi skal udføre DoEvents, har vi brug for et kæmpe datasæt, hvor vi kan se, hvordan koden bliver afbrudt. Så vi bruger en løkke, hvor numrene bliver anvendt, indtil koden er afsluttet. Følg nedenstående trin for dette:

Trin 1: Åbn et modul i VBA fra Insert-menufanen som vist nedenfor.

Trin 2: Skriv underproceduren for VBA DoEvents, eller vi kan vælge ethvert navn til at definere koden som pr. Vores behov.

Kode:

 Sub VBA_DoEvents () End Sub 

Trin 3: Definer nu en variabel i ethvert navn med datatyperne Long. Formålet med at betragte datatypen som lang er fordi vi tager en hvilken som helst længde af data, som vi ønsker, hvilket ikke er muligt, hvis vi betragter heltal.

Kode:

 Sub VBA_DoEvents () Dim A As Long End Sub 

Trin 4: Åbn nu en For-Next-loop, hvor vi vil sætte betingelserne.

Kode:

 Sub VBA_DoEvents () Dim en så lang tid til næste en slut Sub 

Trin 5: Overvej rækkevidden for et antal efter dit valg, som kan ses at blive implementeret. Her tager vi intervallet 1 til 2000 i defineret variabel A.

Kode:

 Sub VBA_DoEvents () Dim A så længe for A = 1 til 20000 Næste A End Sub 

Trin 6: Når vi definerer rækkevidden af ​​tal, vælger vi området med celler, hvor vi vil se ændringerne i numre, som vi valgte ovenfor. Lad os sige, at cellernes rækkevidde er A1 til A5. Dette kan også være en enkelt celle.

Kode:

 Sub VBA_DoEvents () Dim A så længe for A = 1 til 20000 rækkevidde ("A1: A5"). Værdi = A Næste A End Sub 

Trin 7: Kør nu koden ved at klikke på knappen Afspil under menulinjen.

Vi ser, koden er afsluttet ved at udskrive numrene fra 1 til 20000, men vi kunne ikke stoppe den.

Trin 8: For at få fuld kontrol over koden skal du anvende DoEvents efter loopbetingelserne som vist nedenfor.

Kode:

 Sub VBA_DoEvents () Dim A så længe for A = 1 til 20000 rækkevidde ("A1: A5"). Værdi = A DoEvents Næste A End Sub 

Trin 9: Kør nu igen koden. Og på dette tidspunkt prøver vi at stoppe koden ved at klikke på stopknappen, vi vil bemærke, at koden stoppes mellem processerne, inden prøveperioden på 20000 afsluttes.

Excel VBA DoEvents - eksempel # 2

Der er en anden type proces til implementering af DoEvents. Men også til dette har vi brug for enorm kode, som det ses i eksempel-1. Følg nedenstående trin for dette:

Trin 1: Skriv underproceduren for VBA DoEvents som vist nedenfor.

Kode:

 Sub VBA_DoEvents2 () End Sub 

Trin 2: Åbn direkte en For-næste loop uden at definere en variabel.

Kode:

 Sub VBA_DoEvents2 () For Next End Sub 

Trin 3: Vælg et talinterval, vi vil se køre. Lad intervallet være 1 til 20000 det samme som eksempel 1.

Kode:

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

Trin 4: Læg nu noget arbejde til output direkte, lad os sige, at output er som vist nedenfor. Og værdiområdet er +1 af den faktiske værdi.

Kode:

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

Trin 5: Vælg nu det område, hvor vi vil se output. Lad cellen være A1.

Kode:

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

Trin 6: Og til sidst sætter vi DoEvents i slutningen af ​​For loop-tilstand.

Kode:

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

Trin 7: Og kør derefter koden ved at trykke på F5-tasten. Vi kan se, vi kan gøre alt, selv når koden kører. Til demonstration har jeg valgt cellerne B1 og C1. Tallene nåede kun 4348, hvilket er ganske mindre end den grænse, vi har sat.

Trin 8: Hvis vi fjerner DoEvents og kører koden, kan vi ikke gøre noget, før koden er færdig med sin proces. Lad os se det også.

Kode:

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

Trin 9: Kør nu koden igen. Som vi kan se, mens vi forsøgte at klikke på Stop, stoppede koden ikke. Og Play-funktionen var stadig TIL.

Fordele og ulemper ved Excel VBA DoEvents

  • Vi kan arbejde på ethvert værktøj eller fil i baggrunden, mens VBA-koden kører parallelt.
  • Brug af DoEvents forhindrer os ikke i at udføre det arbejde, vi ønsker, når koden kører.
  • Det overskriver regnearket eller projektmappen, når vi skifter mellem de forskellige regneark eller projektmapper.
  • Koden stopper, når vi skriver eller skifter celle et øjeblik, og vi får ikke besked.

Ting at huske

  • Hvis vi gør noget uden at anvende DoEvents, er der en stor mulighed for, at koden fryser systemet og filen. Og at vi enten genoptager filerne, når koden er fuldstændigt kørt eller styrter filen ved flere klik.
  • Vi kan se ændringen i processen, mens vi arbejder på det andet arbejde samtidig.
  • Når vi er færdig med koden, skal du gemme filen i makroaktiveret excel-format for at undgå at miste kode.
  • Prøv at anvende koden i et stort og stort sæt kodning, der vil vi se den faktiske implementering og brug.

Anbefalede artikler

Dette er en guide til VBA DoEvents. Her diskuterer vi, hvordan du bruger DoEvents-funktion i Excel ved hjælp af VBA-kode sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Sådan bruges StrConv i Excel VBA?
  2. Konverter numre til tekst i Excel (eksempler)
  3. VBA ByRef-funktion (eksempler med Excel-skabelon)
  4. Excel SUMIFS med datoer | Excel-skabelon

Kategori: