Výstupný text VBA Ak nie sú splnené podmienky, ukončite podproces VBA

Procedúra výstupu VBA programu Excel VBA

Príkaz Exit Sub ukončí podproces skôr, ako sú definované riadky kódov VBA. Na ukončenie podprocesu však musíme použiť nejaký logický test.

Zostrojme to jednoducho.

Sub MacroName () „…“ Sem nejaký kód “… Exit Sub„ Opustiť Sub bez vykonania ďalších riadkov kódu uvedených nižšie “…„ Tento kód bude ignorovaný “… End Sub

Príklady

Príklad č

Lepší príklad nájdete v nižšie uvedenom kóde.

Kód:

Sub Exit_Example1 () Dim k As Long For k = 1 až 10 buniek (k, 1). Hodnota = k Next k End Sub

Vyššie uvedený kód vloží sériové čísla od 1 do 10 do buniek A1 až A10.

Teraz chcem vložiť iba 5 sériových čísel a akonáhle sa hodnota premennej „k“ stane 6, chcem opustiť sub.

Budem musieť pridať logický test v programe Excel ako IF k = 6 Then Exit Sub .

Kód:

Sub Exit_Example1 () Dim k As Long For k = 1 až 10 If k = 6 Then Exit Sub 'Akonáhle sa hodnota k stane 6, bude ignorovať všetky kódy a opustí bunky (k, 1). Hodnota = k Ďalšia k Koniec Sub

Teraz spustite kód po riadku. Stlačením klávesu F8 zahájite konanie.

Odteraz je hodnota k nulová.

Ak chcete zmeniť hodnotu k na 1, stlačte kláves F8 ešte raz.

Takže hodnota k je 1, náš kód beží ďalej a do bunky A1 vloží 1. Takto stále pokračujte v cykle, kým sa hodnota k nezmení na 6.

Teraz je hodnota k 6 a riadok kódu sa chystá vykonať náš logický test na ukončenie podprocesu. Ak stlačím kláves F8 ešte raz, prejde to priamo iba celým subprocesom.

Ako vidíme, zvýraznilo slovo „Exit Sub“. Po stlačení klávesu F8 sa podprogram ukončí bez toho, aby prešiel na slovo „End Sub“.

Príklad č. 2 - Pri chybe Ukončite podproces

Podproces môžeme tiež opustiť, keď dostaneme chybové hodnoty. Zvážte napríklad nižšie uvedené údaje o rozdelení čísla 1 od čísla 2.

Nižšie je uvedený kód na získanie rozdelenia dvoch čísel.

Kód:

Sub Exit_Example2 () Dim k ako dlho pre k = 2 až 9 buniek (k, 3). Hodnota = bunky (k, 1). Hodnota / bunky (k, 2). Hodnota Nasledujúca k Koniec Sub

Ako vieme, nemôžeme deliť žiadne číslo nulou. Takže ak sa o to pokúsime, dostaneme chybu ako Run Time Error '11': Division By Zero.

Aby sme sa tomu vyhli, akonáhle narazíme na akúkoľvek chybu, spomeniem svoje makro na okamžité ukončenie podprocesu. Jedným z takýchto prípadov je kód uvedený nižšie.

Kód:

Sub Exit_Example2 () Dim k ako dlho pre k = 2 až 9 pri chybe GoTo ErrorHandler Cells (k, 3). Value = Cells (k, 1). Value / Cells (k, 2). Value Next k ErrorHandler: Exit Sub Koniec Sub

Vo vyššie uvedenom príklade som spomenul vyhlásenie „Pri chybe, prejdite na ErrorHandler“. Tu je slovo ErrorHandler štítok, ktorý som priradil. Ak vidíte v spodnej časti kódu, uviedol som značku ako

ErrorHandler: Exit Sub

Len čo sa v kóde vyskytne chyba, kód sa presunie na štítok a značka má vyhlásenie „Exit Sub“, ktoré ukončí podproces.

Teraz spustím kód; bude počítať delenie, kým nenájde chybu.

Ako vidíte v bunke C7, narazila na chybu „Delenie nulou“, takže opustila podproces. Bez informovania používateľa, ktorý ukončí subproces, je vždy nebezpečná vec. Aby sme používateľa upozornili na chybu, môžeme zahrnúť jednu malú schránku so správami.

Kód:

Sub Exit_Example2 () Dim k ako dlho pre k = 2 až 9 pri chybe GoTo ErrorHandler bunky (k, 3). Hodnota = bunky (k, 1). Hodnota / bunky (k, 2) .Hodnota Ďalej k ErrorHandler: MsgBox " Vyskytla sa chyba a chyba: „& vbNewLine & Err.Popis Exit Sub End Sub

Vyššie uvedený kód zobrazí chybové hlásenie a potom ukončí podproces. Ak sa počas spustenia kódu vyskytne chyba, zobrazí sa okno správy vo formáte VBA, ako je uvedené nižšie.

Toto je spoľahlivejší spôsob ukončenia vedľajšieho postupu.

Zaujímavé články...