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ých prípadoch program Excel nejaký čas visí a zastaví sa a niekedy dokonca prestane reagovať.
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 hárku programu Excel.

Z vyššie uvedeného môžeme vidieť, že kód je spustený, ale môžeme získať prístup k pracovnému hárku.
Prerušte spustený kód
Keď je kód spustený za obrazovkou, môžeme pridávať riadky, stĺpce a rovnaké mazať, 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 a tá prepíše hodnoty aktívneho hárka.
- Ďalším nebezpečenstvom je, ak do bunky zadáme ľubovoľnú hodnotu, vykonávanie kódu sa zastaví a ani nás to neoznámi.