Funkcia Excel VBA DoEvents

Keď píšeme obrovské kódy, vždy spadneme do pasce VBA. Ak je kód veľký, VBA si vyžaduje vlastný čas na dokončenie procesu spustenia a vykonávania. Môže to trvať od jednej minúty do niekoľkých minút. Toto je časový rámec, keď sa každý podráždi. A v tomto časovom období nemôžeme urobiť nič iné. Aby sme tomu zabránili, máme vo VBA funkciu s názvom DoEvents. Pomocou DoEvents môžeme spustiť kód na pozadí a súčasne môžeme robiť aj iné druhy vecí. Nemôžeme pracovať iba na inom nástroji alebo softvéri, ale tiež môžeme prerušiť kód alebo zastaviť medzi procesom vykonávania.

Akonáhle zadáme kód DoEvents, potom s výnimkou VBA, budeme mať tiež kontrolu nad prácou, ktorú chceme robiť. Dobré na DoEvents je, že nemá žiadny druh syntaxe na písanie. Doevents môžeme priamo umiestniť na miesto, kde chceme prevziať kontrolu nad VBA a vykonávať úlohy podľa potreby.

Ako používať funkciu DoEvents v programe Excel VBA?

Nižšie sú uvedené rôzne príklady použitia funkcie DoEvents vo formáte Excel pomocou kódu VBA.

Túto šablónu aplikácie VBA DoEvents Excel si môžete stiahnuť tu - šablónu VBA DoEvents Excel

Excel VBA DoEvents - Príklad č. 1

Aj keď na spustenie DoEvents potrebujeme obrovskú množinu údajov, kde vidíme, ako sa kód prerušuje. Použijeme teda slučku, kde sa čísla použijú až do dokončenia kódu. Postupujte podľa nasledujúcich krokov:

Krok 1: Otvorte modul vo VBA z karty ponuky Vložiť, ako je to znázornené nižšie.

Krok 2: Napíšte podprogram VBA DoEvents alebo si môžeme zvoliť ľubovoľný názov na definovanie kódu podľa našich potrieb.

kód:

 Sub VBA_DoEvents () End Sub 

Krok 3: Teraz definujte premennú v akomkoľvek názve s dátovými typmi Long. Účelom zváženia typu údajov ako dlho je to, že vezmeme ľubovoľnú dĺžku údajov, ktoré chceme, čo nie je možné, ak vezmeme do úvahy celé číslo.

kód:

 Sub VBA_DoEvents () Dim A ako Long End Sub 

Krok 4: Teraz otvorte slučku For-Next, kde stanovíme podmienky.

kód:

 Sub VBA_DoEvents () Dim A tak dlho na ďalší koniec Sub 

Krok 5: Zvážte rozsah podľa vášho výberu, ktorý bude viditeľný pri implementácii. Tu berieme rozsah 1 až 2000 v definovanej premennej A.

kód:

 Sub VBA_DoEvents () Dim A, pokiaľ je A = 1 až 20000 Next A End Sub 

Krok 6: Keď definujeme rozsah čísel, vyberieme rozsah buniek, kde uvidíme zmeny v číslach, ktoré sme vybrali vyššie. Povedzme, že rozsah buniek je A1 až A5. Môže to byť aj jedna bunka.

kód:

 Sub VBA_DoEvents () Dim A tak dlho pre A = 1 až 20000 Range ("A1: A5"). Hodnota = A Next A End Sub 

Krok 7: Teraz spustite kód kliknutím na tlačidlo Prehrať umiestnené pod panelom s ponukami.

Uvidíme, že kód bol dokončený tlačením čísel od 1 do 20000, ale nemohli sme ho zastaviť.

Krok 8: Ak chcete získať úplnú kontrolu nad kódom, aplikujte DoEvents po podmienkach slučky, ako je uvedené nižšie.

kód:

 Sub VBA_DoEvents () Dim A tak dlho pre A = 1 až 20000 Range ("A1: A5"). Hodnota = A DOEvents Next A End Sub 

Krok 9: Teraz znova spustite kód. A v tomto okamihu sa pokúsime zastaviť kód kliknutím na tlačidlo zastavenia, všimneme si, že kód sa medzi procesmi zastaví pred ukončením skúšobnej skúšky 20000.

Excel VBA DoEvents - Príklad č. 2

Existuje ďalší typ procesu implementácie DoEvents. Ale na to tiež potrebujeme obrovský kód, ako je vidieť v príklade 1. Postupujte podľa nasledujúcich krokov:

Krok 1: Napíšte podprogram VBA DoEvents, ako je to znázornené nižšie.

kód:

 Sub VBA_DoEvents2 () End Sub 

Krok 2: Priamo otvorte slučku For-next bez definovania premennej.

kód:

 Sub VBA_DoEvents2 () pre nasledujúci koniec Sub 

Krok 3: Vyberte rozsah čísel, ktorý sa bude zobrazovať. Nechajte rozsah 1 až 20 000 rovnaký ako v príklade 1.

kód:

 Sub VBA_DoEvents2 () Pre A = 1 až 20000 Ďalší koniec Sub 

Krok 4: Teraz priamo vložte akúkoľvek prácu pre výstup, povedzme, že výstup je, ako je uvedené nižšie. Rozsah hodnôt bude +1 skutočnej hodnoty.

kód:

 Sub VBA_DoEvents2 () Pre A = 1 až 20000 Výstup = Výstup + 1 Ďalší koniec Sub 

Krok 5: Teraz vyberte rozsah, v ktorom chceme vidieť výstup. Nech je bunka A1.

kód:

 Sub VBA_DoEvents2 () Pre A = 1 až 20000 Výstup = Výstup + 1 rozsah ("A1") Hodnota = Výstup Ďalší koniec Sub 

Krok 6: A konečne dáme DoEvents na koniec stavu For loop.

kód:

 Sub VBA_DoEvents2 () Pre A = 1 až 20000 Výstup = Výstup + 1 rozsah ("A1"). Hodnota = Výstup DoEvents Ďalší koniec Sub 

Krok 7: A potom spustite kód stlačením klávesu F5. Uvidíme, môžeme urobiť čokoľvek, aj keď je kód spustený. Na demonštráciu som vybral bunky B1 a C1. Čísla dosiahli iba 4348, čo je dosť menej, ako sme stanovili limit.

Krok 8: Ak odstránime DoEvents a spustíme kód, nebudeme môcť robiť nič, kým kód nedostane dokončenie procesu. Pozrime sa na to tiež.

kód:

 Sub VBA_DoEvents2 () Pre A = 1 až 20000 Výstup = Výstup + 1 rozsah ("A1") Hodnota = Výstup Ďalší koniec Sub 

Krok 9: Teraz znova spustite kód. Ako vidíme, keď sme sa pokúsili kliknúť na Zastaviť, kód sa nezastavil. A funkcia Play bola stále zapnutá.

Výhody a nevýhody aplikácie Excel VBA DoEvents

  • Môžeme pracovať na akomkoľvek nástroji alebo súbore na pozadí, zatiaľ čo kód VBA bude bežať paralelne.
  • Používanie DoEvents nás nezastaví pri práci, ktorú chceme, keď je kód spustený.
  • Pri prepínaní medzi rôznymi hárkami alebo zošitmi prepíše pracovný hárok alebo zošit.
  • Kód sa zastaví, keď na chvíľu napíšeme alebo zmeníme bunku a nedostaneme upozornenie.

Čo je potrebné pamätať

  • Ak urobíme čokoľvek bez použitia DoEvents, potom existuje veľká možnosť, že kód a systém zamrznú. A že súbory obnovíme, až bude kód úplne spustený, alebo súbor niekoľkokrát klikneme.
  • Vidíme zmenu procesu, keď pracujeme na ďalšej práci súčasne.
  • Po dokončení kódu uložte súbor do formátu Excel s povoleným makrom, aby nedošlo k strate kódu.
  • Skúste použiť kód v obrovskej a veľkej sade kódovania, kde uvidíme skutočnú implementáciu a použitie.

Odporúčané články

Toto je sprievodca programom VBA DoEvents. Tu diskutujeme o tom, ako používať funkciu DoEvents v programe Excel pomocou kódu VBA, spolu s praktickými príkladmi a šablónou programu Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Ako používať StrConv v Excel VBA?
  2. Prevod čísiel na text v Exceli (príklady)
  3. Funkcia VBA ByRef (príklady so šablónou programu Excel)
  4. SUMIFY Excel s dátumami Šablóna Excel

Kategórie: