Zpracování chyb VBA - Průvodce zpracováním chyb v aplikaci Excel VBA

Zpracování chyb aplikace Excel VBA

Ve VBA, když pracujeme s kódy, se můžeme setkat s mnoha různými typy chyb a způsob řešení těchto chyb je známý jako Zpracování chyb, nyní mohou existovat některé chyby, které se dělají v syntaxi, která sama vyniká, ale když se vyskytne nějaká chyba který je mimo rozsah nebo něco, co neexistuje, Excel nám dává vyskakovací okno pro stejné, je důležité vědět, který kód chyby je pro jakou chybu, abychom identifikovali chybu v kódu.

V aplikaci Excel VBA se při provádění jakékoli sady kódů dostáváme jakési chyby. Některé z těchto chyb jsou syntaktické chyby; některé jsou chyby, které nelze spustit. Chyba syntaxe je, když ji uživatel vytvoří, je sama zvýrazněna červenou barvou. Ale když existuje nějaký jiný druh chyby za běhu, jak to vyřešíme a jak se dostaneme nad rámec toho, o čem pojednáme v tomto článku.

Kromě syntaktických chyb je třeba při provádění jakékoli sady kódů řešit i další chyby běhu. Nejprve mi dovolte uvést příklad, jak dochází k další runtime chybě. Podívejte se na níže uvedený kód,

Toto je ukázkový kód, když je spuštěn, vrátí to, co je napsáno ve funkci msgbox. Ale jak vidíme, ve druhém řádku kódu je 4/0, což z matematického hlediska není možné, takže vrátí chybu běhu. Provedeme výše uvedený kód a uvidíme chybu, kterou dostaneme.

To je chyba, kterou dostáváme při provádění daného kódu. Nyní, jak tuto chybu zpracujeme, děláme pomocí zpracování chyb.

Existují dvě metody pro zpracování chyb, které jsou:

  1. Při chybě přejděte a
  2. Při chybě Pokračovat dále.

Vysvětlení

Jak je vysvětleno výše, ve VBA máme mnoho typů chyb. Některé jsou syntaxe a jiné doba běhu. Chyby syntaxe jsou již zvýrazněny červenou barvou, například viz níže screenshot,

Zatímco druhý je chyby běhu. V zásadě aplikace Excel provede následující tři věci, buď zobrazí chybu, nebo ji ignoruje, nebo zobrazí určitou sadu pokynů. K provádění těchto úkolů musíme dávat pokyny a toto se nazývá Zpracování chyb.

Jak zacházet s chybami v kódu VBA?

Příklad č. 1

Pro první příklad si vezměme první kód, který jsme si vzali jako ukázku. Ve výše uvedeném příkladu jsme viděli, že kód poskytuje chybu doby běhu u druhé funkce msgbox.

Po otevření dílčí funkce napište následující kód,

Kód:

Sub Sample () Při chybě Pokračovat Další MsgBox 4/2 MsgBox 4/0 0 MsgBox 4/1 Konec Sub

Nyní, když provedeme výše uvedený kód, vidíme, že řádek kódu, který má chybu, se neprovede. Excel přeskočí tento řádek a pokračuje na dalším řádku.

Existuje další způsob, jak tuto chybu zpracovat, je VBA Goto Statement. Poskytujeme Excel jako cíl, kam jít, když zjistí chybu. Místo předchozího kódu pro zpracování chyb jsme vložili, zapište si následující kód,

Kód:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Dáváme Excel Az jako cíl, kam jít, pokud najde chybu. Nyní po msgboxu napište další kód, jak je uvedeno níže,

Kód:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 0 MsgBox 4/1 Hotovo: Ukončit Sub

Nyní musíme definovat cíl az jako to, co by mělo dělat, když Excel najde chybu v kódu.

Kód:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Hotovo: Exit Sub az: MsgBox "This is an error" & Err.Popis End Sub

Nyní, když spustíme tento kód, vidíme zobrazený výsledek.

Toto je první výsledek pole se zprávou a protože víme, že máme chybu v dalším řádku našeho kódu, podívejme se na výsledek, který získá Excel.

Popis chyby v kódu výše nám pomáhá přesně ukázat, k jaké chybě v našem kódu došlo.

Příklad č. 2

Naučili jsme se, jak zacházet s chybami v našich kódech. Podívejme se na další příklad, jak řešit chyby. Zvažte následující kód jako náš druhý příklad.

Máme poněkud podobnou chybu z příkladu 1. Chyba je v řádku d = i / b. Nyní tyto chyby vyřešíme pomocí dvou výše vysvětlených metod.

Po otevření dílčí funkce napište následující kód,

Kód:

Sub Sample2 () On Error Resume Next bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox „Toto je další chyba“ & Err.Description End Sub

Nyní, když spustíme kód, vidíme, že excel nám nejprve dá hodnotu pro C.

Nyní v dalším kroku nám poskytne výzvu, kterou jsme poskytli, když narazí na chybu.

Takto zpracováváme běžné runtime chyby v Excel VBA.

Věci k zapamatování

O zpracování chyb je třeba si pamatovat několik věcí:

  1. Při dalším pokračování v chybě se chyba ignoruje.
  2. Při chybě GoTo dává vynikne cíl, když narazí na chybu.
  3. Popis se používá k zobrazení přesné chyby, ke které došlo u uživatele.

Zajímavé články...