VBA DoEvents | Ako a kedy používať funkciu DoEvents?

Funkcia DoEvents programu Excel VBA

Pomocou VBA DoEvents dokážeme spustiť kód na pozadí a súčasne nám umožní pracovať aj s programami Excel a iným aplikačným softvérom. DoEvents nám umožňuje nielen pracovať s iným softvérom, ale môžeme tiež prerušiť beh kódu.

Funkcia DoEvents odovzdáva kontrolu operačnému systému počítača, na ktorom pracujeme.

Ako používať funkciu DoEvents?

Ak sú požiadavky obrovské, vyžaduje sa veľké množstvo kódu VBA. V týchto prípadoch program Excel na určitý čas zastaví a zastaví sa a niekedy dokonca prestane reagovať.

Túto šablónu VBA DoEvents Excel si môžete stiahnuť tu - Šablóna VBA DoEvents Excel

Napríklad si pozrite nasledujúci kód.

Kód:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i Next i End Sub 

Vyššie uvedený kód vloží sériové čísla od 1 do 100 000. Vykonanie úlohy bude trvať ľahko viac ako minútu. Počas vykonávania program Excel visí značné množstvo času na dokončenie úlohy. Počas tejto doby program Excel zobrazí správu ako „Excel neodpovedá“.

Navyše nemôžeme získať prístup k pracovnému listu, na ktorom pracujeme. To je frustrujúca vec, ako potom urobíme, aby bol hárok programu Excel k dispozícii na prácu, keď je kód spustený za obrazovkou.

To sa dá dosiahnuť pridaním funkcie VBA DoEvents .

Kód:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

V okamihu, keď do kódu pridáme funkciu DoEvents, môžeme získať prístup k excelovskému hárku.

Zhora vidíme, že kód je spustený, ale môžeme získať prístup k pracovnému listu.

Prerušte spustený kód

Keď je kód spustený za obrazovkou, môžeme pridávať riadky, stĺpce a mazať ich, môžeme premenovať hárok a môžeme robiť aj veľa ďalších vecí. V okamihu, keď pridáme DoEvents, dôjde k rýchlemu spusteniu kódu vba a umožní nám to padnúť, že spomínaná úloha beží sama pre seba.

  • Jedným z nebezpečenstiev funkcie DoEvents je, keď prepíname pracovné hárky alebo zošity, prepíše hodnoty aktívneho hárka.
  • Ďalším nebezpečenstvom je, že ak do bunky zadáme ľubovoľnú hodnotu, vykonávanie kódu sa zastaví a ani nás neinformuje.
Poznámka : Napriek vyššie uvedenému nebezpečenstvu DoEvents je to stále praktická funkcia. DoEvents môžeme použiť ako súčasť procesu ladenia, keď sa pokúšame opraviť chyby kódu, ktorý sme napísali.