Uživatelé se ve VBA často setkávají s různými typy chyb. Níže nabízíme několik strategií pro jejich řešení a řešení. Projdeme si techniky, které můžete použít k dotazování kódu během testování, a také metody zachycení chyb za běhu.
Testování a sledování různých typů chyb v kódu VBA může být časově náročné a frustrující. Není neobvyklé slyšet programátory Programování Programování je proces psaní pokynů, které má počítač provést. Je to podobné receptu pro člověka. Recept obsahuje seznam akcí, které říkají, že více než 30% jejich času je věnováno testování.
Postupem času se budete lépe vyhýbat chybám, ale je nepravděpodobné, že napíšete perfektní kód poprvé. Když se naučíte, jak se vyhnout chybám VBA, vypořádat se s nimi a vystopovat, ušetříte si v budoucnu spoustu času.
Typy chyb VBA
Abychom to usnadnili, rozdělili jsme typy chyb kódování do tří skupin. Pro každou skupinu prozkoumáme několik příkladů a poté probereme, jak je můžete vyšetřit a vyřešit.
1. Syntaktické chyby - Konkrétní řádek kódu není napsán správně
2. Chyby kompilace - Problémy, ke kterým dochází při sestavování řádků kódu, i když se zdá, že jednotlivé řádky kódu dávají smysl
3. Chyby za běhu - Pokud je kód v zásadě správný, ale akce provedená uživatelem nebo používanými daty vede k neočekávaným chybám.
Co jsou chyby syntaxe?
Syntaktické chyby jsou způsobem VBA, který vám na nejzákladnějších úrovních řekne, zda má váš kód smysl. Můžeme provést jednoduché srovnání s pravidly psaní věty v angličtině:
- A předmět je požadováno.
- A sloveso je požadováno.
- A hlavní město dopis je vyžadován na začátku.
- Interpunkce je vyžadováno na konci.
- Objekty, přídavná jména a další gramatické znaky jsou volitelné.
Janenalezeno 18 chyb v jejím kódu VBA.
Podobným způsobem ukládá VBA určitá pravidla ohledně toho, co je požadováno v určitých situacích. Například při zahájení základního podmíněného příkazu IF v kódu musíte replikovat následující pravidla syntaxe pro první řádek příkazu IF;
- Musí to začít Li
- Další musí být a logický test , například x> 10
- Nakonec to musí skončit slovem pak
LiPočet chyb> 20pak
Pokud porušíte výše uvedená pravidla angličtiny nebo VBA, bude vaše gramatika (angličtina) nebo syntaxe (VBA) považována za nesprávnou.
Jak identifikovat syntaktickou chybu
Editor VBA zvýrazňuje chyby syntaxe červeně, což vám umožňuje snadno je identifikovat a vyřešit. Pokud se navíc pokusíte spustit kód nebo spustit nový řádek, zobrazí se níže uvedená chybová zpráva o syntaxi.
Základní chyba syntaxe:
Pole se syntaxí chybové zprávy:
Abyste se ujistili, že kontroly probíhají během psaní, povolte v nabídce Možnosti „Automatickou kontrolu syntaxe“.
Jak vyřešit chyby syntaxe
Syntaktické chyby představují chyby ve způsobu, jakým je zapsán konkrétní řádek vašeho kódu. Před spuštěním kódu musí být opraveny. Se zkušenostmi bude červený text vše, co potřebujete k odhalení chyby. Pokud ale stále uvíznete, jednoduše vyhledejte „if statement syntax vba“ nebo jakoukoli variantu, která vyhovuje vašim potřebám, a najdete spoustu příkladů konkrétního řádku, který se snažíte napsat.
Co jsou chyby kompilace?
Chyby kompilace odkazují na širší skupinu chyb VBA, které zahrnují chyby syntaxe. Chyby kompilace také identifikují problémy s vaším kódem, pokud jsou považovány za celek. Syntaxe každého jednotlivého řádku může být správná, ale pokud je dáte dohromady, řádky vašeho kódu nedávají smysl. Chyby kompilace jsou zvýrazněny při kompilaci nebo spuštění kódu.
Jak identifikovat chybu kompilace
Při spuštění kódu VBA se chyby kompilace zobrazí v dialogovém okně VBA podle níže uvedených příkladů.
Alternativně, pokud je váš projekt dlouhý nebo složitý a zahrnuje více rutin, může být užitečné kompilovat váš kód před jeho spuštěním. Zabraňuje situacím, kdy polovina vašeho kódu běží úspěšně, a pak se objeví chyba. Svůj kód VBA můžete zkompilovat kliknutím na Debug Menu → Compile VBA Project.
Příklad 1
Chyba kompilace pro chybějící část příkazu „End if“ příkazu IF. Každý jednotlivý řádek v kódu je správný, ale společně nepředstavují úplné prohlášení IF.
Příklad 2
V tomto příkladu proces kompilace VBA zjistil syntaktickou chybu zvýrazněnou červeně. VBA označuje, že níže uvedenému kódu chybí koncová závorka funkce.
Příklad 3
Chyby kompilace jsou běžné při použití Option Explicit a vyskytují se, když proměnná nebyla explicitně definována. S aktivovanou Option Explicit je k deklaraci všech proměnných před jejich použitím ve vašem kódu vyžadován příkaz Dim.
Jak vyřešit chyby kompilace
Chyby kompilace VBA zabrání spuštění ovlivněných rutin. Dokud je neopravíte, nemůže váš kód správně interpretovat VBA. Okna s chybovými zprávami často poskytují užitečnější rady než s chybami syntaxe.
Pokud z chybové zprávy není okamžitě zřejmé, o jaký problém jde, zkuste použít Centrum nápovědy společnosti Microsoft, abyste získali představu o tom, jak přesně by měl být váš výpis nebo funkce napsána. Zde je příklad chybové zprávy „Blokovat, pokud bez konce,“ na webu Microsoftu.
Co jsou chyby za běhu?
Jakmile opravíte chyby syntaxe a chyby kompilace, jste připraveni zahájit testování nebo správné spuštění kódu, abyste zjistili, jak dobře provádí požadované akce nebo výpočty. Období testování nebo živé spuštění kódu nazýváme „runtime“.
Chyby za běhu nelze zjistit pouhým pohledem na kód; jsou výsledkem interakce vašeho kódu s konkrétními vstupy nebo daty v té době.
Chyby za běhu jsou často způsobeny neočekávanými daty předávanými do kódu VBA, neshodou datových typů, dělením neočekávanými nulami a definovaným rozsahem buněk, které nejsou k dispozici. Chyby při běhu jsou také nejrůznější a nejsložitější pro sledování a opravu.
Jak identifikovat chyby za běhu
Ladění VBA VBA: Jak ladit kód Při psaní a spouštění kódu VBA je důležité, aby se uživatel naučil ladit chyby kódu. Očekává se uživatele aplikace Excel, že funkce kódu zvýrazní kód problému žlutě a dá nám malou představu o tom, co je příčinou problému.
Příklad 1
Zatímco níže uvedený kód jednoduše vydělí jedno číslo druhým, existují případy, kdy to nebude možné. Pokud je například buňka A1 = 2 a buňka A2 = 0, není možné ji vydělit nulou. Runtime error box includes a debug button, which highlightes the problem code.
Příklad 2
V tomto příkladu jsem vytvořil pole pro shromažďování názvů n společností v mém listu. Pak jsem se pokusil odkazovat na šestou položku, která může nebo nemusí existovat za běhu. VBA představuje runtime chybovou zprávu a umožňuje mi stisknout Debug k prozkoumání problému.
Jakmile stisknu Debug, VBA zvýrazní řádek kódu, který způsobuje problém. Nyní je na mně, abych pomocí zprávy „Dolní index mimo rozsah“ zjistil, co se děje. Chyba indexu mimo rozsah obecně znamená, že váš kód je v zásadě dobrý, ale že konkrétní položku, kterou hledáte, nelze najít. Nejčastěji se to stane při odkazování na buňky nebo rozsahy v aplikaci Excel, stejně jako na pole v kódu VBA.
Abyste se ujistili, že je povolena funkce Debug, v nabídce Možnosti> Obecné> Chytání chyb by měl být výchozí stav „Přerušit na neošetřené chyby“. Nechte zaškrtnutou možnost.
Jak vyřešit chyby za běhu
Vzhledem k tomu, že runtime chyby mají různou a komplexní povahu, jsou také různá řešení. Dvě obecné metody ke snížení chyb za běhu jsou:
Chybné zachycení
Je dobré se zamyslet nad možnými scénáři, se kterými se váš kód může setkat. Ještě lepší je testování kódu na praktických datech nebo se skutečnými uživateli. Umožní vám rozpoznat takové scénáře ve vašem VBA s větvením kódu do různých výsledků v závislosti na tom, zda existují chyby.
Příklad 1
Řádek „On Error Resume Next“ zde vynutí kód, aby pokračoval, i když je zjištěna chyba. Potom použijeme test If Err> 0 k vytvoření varovné zprávy, pouze pokud chyba existuje. Možnost „On Error Goto 0“ resetuje VBA do výchozího stavu.
Příklad 2
Zde kód počítá příjem za den na základě měsíčního příjmu a definovaného počtu dní. Pokud není zadán počet dní, přeskočíme na definovaný bod v našem kódu s názvem „NoDaysInMonthProvided :,“ kde jako základní předpoklad použijeme průměrný počet dní v měsíci. I když je to zjednodušující, jasně ukazuje, jak zachytit chybu a přeskočit na jiné místo v kódu.
Vymazat pokyny uživatele
Jasné štítky dokumentace a listu zajistí, že vaši uživatelé budou s vaším modelem pracovat tak, jak jste zamýšleli. Pomůže jim zabránit při zadávání textu namísto čísel nebo ponechávání nul, které mohou později ovlivnit váš kód.
souhrn
Ve VBA existují tři klíčové typy chyb, které mohou váš kód ovlivnit různými způsoby. Je důležité aktivovat možnosti detekce chyb VBA, jako je ladicí program a automatická kontrola syntaxe. Pomohou vám určit umístění a povahu chyb.
Další zdroje
Finance je oficiálním poskytovatelem globálního Certified Banking & Credit Analyst (CBCA) ™ Certifikace CBCA ™ Certifikace Certified Banking & Credit Analyst (CBCA) ™ je celosvětovým standardem pro úvěrové analytiky, který zahrnuje finance, účetnictví, kreditní analýzu, analýzu peněžních toků , modelování smluv, splácení půjček atd. certifikační program, jehož cílem je pomoci komukoli stát se finančním analytikem světové úrovně. K dalšímu rozvoji vaší kariéry budou užitečné následující zdroje:
- #REF chyby Excel #REF chyby Excel #REF chyby Excel způsobují velké problémy v tabulkách. Naučte se, jak najít a opravit chyby #REF v aplikaci Excel v tomto rychlém kurzu s příklady a snímky obrazovky. #REF! chyba („ref“ znamená odkaz) je zpráva, kterou Excel zobrazí, když vzorec odkazuje na buňku, která již neexistuje, způsobená odstraněním buněk, které
- Příklady Excel VBA Excel VBA Příklady Excel VBA umožňuje uživateli vytvářet makra, která automatizují procesy v aplikaci Excel. Tato příručka použije příklady aplikace Excel VBA k ukázání, jak zaznamenat makro nastavením makra, jak deklarovat proměnné a jak odkazovat na data.
- Tipy pro psaní VBA v aplikaci Excel Tipy pro psaní VBA v aplikaci Excel Níže je uvedeno devět tipů pro psaní VBA v aplikaci Excel. VBA pro Excel přináší nespočet možností pro vlastní výpočty a automatizaci.
- Metody VBA Metody VBA Metoda VBA je část kódu připojená k objektu VBA, proměnné nebo datové referenci, která sděluje aplikaci Excel, jakou akci má provést ve vztahu k danému objektu. Kopírování, vkládání a výběr jsou jen některé příklady metod VBA, které lze provést.