Funkce Excel VBA DoEvents

Když píšeme obrovské kódy, vždy spadneme do pasti VBA. Když je kód velký, VBA zabere svůj vlastní čas na dokončení běhu a provádění procesu. Což může trvat čas od minuty do několika minut. Toto je časový rámec, kdy se každý podráždí. A v tomto časovém období nemůžeme dělat nic jiného. Abychom tomu zabránili, máme ve VBA funkci nazvanou DoEvents. Pomocí DoEvents můžeme spustit kód na pozadí a současně můžeme dělat i jiné druhy věcí. Nemůžeme pracovat pouze na jiném nástroji nebo softwaru, ale také můžeme přerušit kód nebo zastavit mezi procesem provádění.

Jakmile do kódu zadáme DoEvents, pak kromě VBA budeme mít také kontrolu nad prací, kterou chceme dělat. Dobrá věc na DoEvents je, že nemá žádnou syntaxi pro psaní. Můžeme přímo umístit Doevents, kam chceme převzít kontrolu nad VBA a plnit úkoly podle naší potřeby.

Jak používat funkci DoEvents v aplikaci Excel VBA?

Níže jsou uvedeny různé příklady použití funkce DoEvents ve Excelu pomocí kódu VBA.

Tuto šablonu aplikace VBA DoEvents Excel si můžete stáhnout zde - VBA DoEvents Excel Template

Excel VBA DoEvents - Příklad č. 1

Přestože pro spuštění DoEvents potřebujeme obrovskou sadu dat, kde můžeme vidět, jak se kód přeruší. Použijeme tedy smyčku, kde budou čísla použita, dokud nebude kód dokončen. Postupujte podle následujících kroků:

Krok 1: Otevřete modul ve VBA z karty nabídky Vložit, jak je ukázáno níže.

Krok 2: Napište podprogram VBA DoEvents nebo si můžeme vybrat libovolný název pro definování kódu podle naší potřeby.

Kód:

 Sub VBA_DoEvents () End Sub 

Krok 3: Nyní definujte proměnnou v libovolném názvu s datovými typy Long. Účel považovat datový typ za dlouhý je proto, že vezmeme libovolnou délku dat, která chceme, což není možné, pokud vezmeme v úvahu celé číslo.

Kód:

 Sub VBA_DoEvents () Dim A jako Long End Sub 

Krok 4: Nyní otevřete smyčku For-Next, kde stanovíme podmínky.

Kód:

 Sub VBA_DoEvents () Dim A tak dlouho pro další A End Sub 

Krok 5: Zvažte rozsah výběru podle vašeho výběru, který lze vidět při implementaci. Zde bereme rozsah 1 až 2000 v definované proměnné A.

Kód:

 Sub VBA_DoEvents () Dim A tak dlouho pro A = 1 až 20000 Další A End Sub 

Krok 6: Jakmile definujeme rozsah čísel, vybereme rozsah buněk, kde uvidíme změny v číslech, které jsme vybrali výše. Řekněme, že rozsah buněk je A1 až A5. Může to být také jedna buňka.

Kód:

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

Krok 7: Nyní spusťte kód kliknutím na tlačítko Přehrát umístěné pod nabídkovou lištou.

Uvidíme, že kód byl dokončen tiskem čísel od 1 do 20000, ale nemohli jsme ho zastavit.

Krok 8: Chcete-li získat plnou kontrolu nad kódem, použijte DoEvents po podmínkách smyčky, jak je ukázáno níže.

Kód:

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

Krok 9: Nyní znovu spusťte kód. A v tuto chvíli se pokusíme zastavit kód kliknutím na tlačítko zastavení, všimneme si, že se kód zastaví mezi procesy před dokončením zkoušky 20000.

Excel VBA DoEvents - Příklad č. 2

Existuje další typ procesu implementace DoEvents. K tomu však budeme také potřebovat obrovský kód, jak je vidět v příkladu 1. Postupujte podle následujících kroků:

Krok 1: Napište podprogram VBA DoEvents, jak je ukázáno níže.

Kód:

 Sub VBA_DoEvents2 () End Sub 

Krok 2: Přímo otevřete smyčku For-next bez definice proměnné.

Kód:

 Sub VBA_DoEvents2 () pro další konec Sub 

Krok 3: Vyberte rozsah čísel, který uvidíme běžet. Nechte rozmezí 1 až 20000 stejné jako v příkladu-1.

Kód:

 Sub VBA_DoEvents2 () Pro A = 1 až 20000 Next End Sub 

Krok 4: Nyní přímo vložte jakoukoli práci pro výstup, řekněme, že výstup je, jak je uvedeno níže. Rozsah hodnot bude +1 skutečné hodnoty.

Kód:

 Sub VBA_DoEvents2 () Pro A = 1 až 20000 Výstup = Výstup + 1 Další Konec Sub 

Krok 5: Nyní vyberte rozsah, ve kterém chceme vidět výstup. Nechte buňku A1.

Kód:

 Sub VBA_DoEvents2 () Pro A = 1 až 20000 Výstup = Výstup + 1 rozsah ("A1"). Hodnota = Výstup Další konec Sub 

Krok 6: A konečně umístíme DoEvents na konec stavu smyčky For.

Kód:

 Sub VBA_DoEvents2 () Pro A = 1 až 20000 Výstup = Výstup + 1 rozsah ("A1"). Hodnota = Výstup DoEvents Další konec Sub 

Krok 7: A pak spusťte kód stisknutím klávesy F5. Uvidíme, můžeme dělat cokoli, i když je kód spuštěný. Pro demonstraci jsem vybral buňky B1 a C1. Čísla dosáhla pouze 4348, což je docela méně, než jsme stanovili limit.

Krok 8: Pokud odebereme DoEvents a spustíme kód, nebudeme moci nic dělat, dokud kód nezkončí svůj proces. Uvidíme to také.

Kód:

 Sub VBA_DoEvents2 () Pro A = 1 až 20000 Výstup = Výstup + 1 rozsah ("A1"). Hodnota = Výstup Další konec Sub 

Krok 9: Nyní spusťte kód znovu. Jak vidíme, zatímco jsme se pokusili kliknout na Stop, kód se nezastavil. A funkce Play byla stále zapnutá.

Výhody a nevýhody aplikace Excel VBA DoEvents

  • Můžeme pracovat na jakémkoli nástroji nebo souboru na pozadí, zatímco kód VBA bude spuštěn paralelně.
  • Používání DoEvents nás nezastaví v práci, kterou chceme, když je kód spuštěn.
  • Při přepínání mezi různými listy nebo sešity přepíše list nebo sešit.
  • Kód se zastaví, když na okamžik zapíšeme nebo změníme buňku a nedostaneme oznámení.

Co si pamatovat

  • Pokud uděláme cokoli bez použití DoEvents, pak existuje velká možnost, že kód zamrzne systém a soubor. A že soubory obnovíme, jakmile bude kód úplně spuštěn, nebo soubor několikrát klikneme.
  • Vidíme změnu v procesu, zatímco pracujeme na další práci současně.
  • Jakmile dokončíme kód, uložte soubor v makru Excel formátu, aby nedošlo ke ztrátě kódu.
  • Zkuste použít kód v obrovské a velké sadě kódování, uvidíme skutečnou implementaci a použití.

Doporučené články

Toto je průvodce VBA DoEvents. Zde diskutujeme o tom, jak používat funkci DoEvents v Excelu pomocí kódu VBA spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Jak používat StrConv v Excelu VBA?
  2. Převod čísel na text v Excelu (příklady)
  3. Funkce VBA ByRef (příklady se šablonou Excel)
  4. Excel SUMIFS s daty | Šablona Excel

Kategorie: