Excel VBA DoEvents-funktion

När vi skriver enorma koder faller vi alltid i VBA-fällan. När koden är stor tar VBA sin tid att slutföra kör- och körprocessen. Det kan ta tid från en minut till flera minuter. Detta är tidsramen när alla blir irriterade. Och vi kan inte göra något annat under denna tidsperiod. Men för att undvika detta har vi en funktion i VBA som heter DoEvents. Med hjälp av DoEvents kan vi köra koden i bakgrunden och samtidigt kan vi också göra andra slags saker. Vi kan inte bara arbeta med annat verktyg eller mjukvara utan kan också avbryta koden eller stoppa mellan körningsprocessen.

När vi har skrivit in DoEvents i koden kommer vi, förutom VBA, också att ha kontrollen över det arbete vi vill göra. Det bra med DoEvents är att det inte har någon typ av syntax att skriva. Vi kan direkt placera Doevents där vi vill ta kontroll över VBA och utföra uppgifterna enligt vårt behov.

Hur använder jag DoEvents-funktionen i Excel VBA?

Nedan är de olika exemplen att använda DoEvents-funktionen i Excel med hjälp av VBA-kod.

Du kan ladda ner denna VBA DoEvents Excel-mall här - VBA DoEvents Excel-mall

Excel VBA DoEvents - Exempel 1

Även om vi ska utföra DoEvents behöver vi en enorm uppsättning data där vi kan se hur koden blir avbruten. Så vi kommer att använda en slinga, där siffrorna kommer att tillämpas tills koden är klar. För detta följer du stegen nedan:

Steg 1: Öppna en modul i VBA från Infoga menyfliken som visas nedan.

Steg 2: Skriv delproceduren för VBA DoEvents eller så kan vi välja valfritt namn för att definiera koden enligt vårt behov.

Koda:

 Sub VBA_DoEvents () Slut Sub 

Steg 3: Definiera nu en variabel i vilket namn som helst med datatyper Långt. Syftet med att betrakta datatypen som lång är för att vi kommer att ta någon längd med data vi vill ha, vilket inte är möjligt om vi betraktar heltal.

Koda:

 Sub VBA_DoEvents () Dim A As Long End Sub 

Steg 4: Öppna nu en For-Next-slinga där vi ställer villkoren.

Koda:

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

Steg 5: Tänk på ett antal valfritt antal som kan ses att implementeras. Här tar vi intervallet 1 till 2000 i definierad variabel A.

Koda:

 Sub VBA_DoEvents () Dim A så länge för A = 1 till 20000 Nästa A End Sub 

Steg 6: När vi definierar intervall med siffror, kommer vi att välja det antal celler där vi kommer att se förändringarna i siffror som vi valde ovan. Låt oss säga att cellintervallet är A1 till A5. Detta kan också vara en enda cell.

Koda:

 Sub VBA_DoEvents () Dim A så länge för A = 1 till 20000 Range ("A1: A5"). Värde = A Nästa A End Sub 

Steg 7: Kör nu koden genom att klicka på knappen Spela under menyfältet.

Vi ser, koden har slutförts genom att skriva ut siffrorna från 1 till 20000 men vi kunde inte stoppa den.

Steg 8: För att få full kontroll över koden, använd DoEvents efter slingförhållandena som visas nedan.

Koda:

 Sub VBA_DoEvents () Dim A så länge för A = 1 till 20000 Range ("A1: A5"). Värde = A DoEvents Nästa A End Sub 

Steg 9: Kör nu igen koden. Och för närvarande försöker vi stoppa koden genom att klicka på stoppknappen, vi kommer att märka att koden kommer att stoppas mellan processerna innan testet av 20000 slutförs.

Excel VBA DoEvents - Exempel # 2

Det finns en annan typ av process för implementering av DoEvents. Men för detta kommer vi också att behöva enorm kod, som ses i exempel 1. För detta följer du stegen nedan:

Steg 1: Skriv delproceduren för VBA DoEvents som visas nedan.

Koda:

 Sub VBA_DoEvents2 () Slut Sub 

Steg 2: Öppna direkt en nästa slinga utan att definiera en variabel.

Koda:

 Sub VBA_DoEvents2 () För nästa slut Sub 

Steg 3: Välj ett nummerintervall som vi kommer att se. Låt intervallet vara 1 till 20000 samma som exempel 1.

Koda:

 Sub VBA_DoEvents2 () För A = 1 till 20000 Nästa slut Sub 

Steg 4: Lägg nu direkt något arbete för output, låt oss säga att utgången är som visas nedan. Och värdet kommer att vara +1 för det verkliga värdet.

Koda:

 Sub VBA_DoEvents2 () För A = 1 till 20000 Output = Output + 1 Next End Sub 

Steg 5: Välj nu det område där vi vill se utgången. Låt cellen vara A1.

Koda:

 Sub VBA_DoEvents2 () För A = 1 till 20000 Output = Output + 1 Range ("A1"). Värde = Output Next End Sub 

Steg 6: Och äntligen sätter vi DoEvents i slutet av For loop-tillståndet.

Koda:

 Sub VBA_DoEvents2 () För A = 1 till 20000 Output = Output + 1 Range ("A1"). Värde = Output DoEvents Next End Sub 

Steg 7: Och kör sedan koden genom att trycka på F5-tangenten. Vi får se, vi kan göra allt även när koden körs. För demonstration har jag valt cellerna B1 och C1. Siffrorna nådde endast 4348, vilket är ganska mindre än gränsen som vi har angett.

Steg 8: Om vi ​​tar bort DoEvents och kör koden kan vi inte göra någonting förrän koden har slutfört sin process. Låt oss se det också.

Koda:

 Sub VBA_DoEvents2 () För A = 1 till 20000 Output = Output + 1 Range ("A1"). Värde = Output Next End Sub 

Steg 9: Kör nu koden igen. Som vi kan se, medan vi försökte klicka på Stop, stoppade koden inte. Och Play-funktionen var fortfarande PÅ.

Fördelar och nackdelar med Excel VBA DoEvents

  • Vi kan arbeta med alla verktyg eller filer i bakgrunden medan VBA-koden körs parallellt.
  • Att använda DoEvents hindrar oss inte att göra det arbete vi vill ha när koden körs.
  • Den skriver över kalkylbladet eller arbetsboken när vi växlar mellan olika kalkylblad eller arbetsbok.
  • Koden stannar när vi skriver eller ändrar cellen ett ögonblick och vi får inte meddelande.

Saker att komma ihåg

  • Om vi ​​gör något utan att tillämpa DoEvents, finns det en stor möjlighet att koden fryser systemet och filen. Och att vi antingen kommer att återuppta filerna när koden har körts helt eller kraschar filen med flera klick.
  • Vi kan se förändringen i processen medan vi arbetar med det andra arbetet samtidigt.
  • När vi har slutfört koden sparar du filen i makroaktiverat Excel-format för att undvika att förlora koden.
  • Prova att använda koden i en enorm och stor uppsättning kodning, där ser vi den faktiska implementeringen och användningen.

Rekommenderade artiklar

Detta är en guide till VBA DoEvents. Här diskuterar vi hur du använder DoEvents-funktionen i Excel med hjälp av VBA-kod tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Hur använder man StrConv i Excel VBA?
  2. Konvertera siffror till text i Excel (exempel)
  3. VBA ByRef-funktion (exempel med Excel-mall)
  4. Excel SUMIFS med datum | Excel-mall

Kategori: