Tento tutoriál vysvětlí, co znamená chyba kompilace VBA a jak k ní dochází.
Před spuštěním kódu editor VBA kód zkompiluje. To v podstatě znamená, že VBA prozkoumá váš kód, aby se ujistil, že jsou tam všechny požadavky na jeho správné spuštění - zkontroluje, zda jsou deklarovány všechny proměnné (pokud používáte Option Explicit, což byste měli!), Zkontrolujte, zda jsou deklarovány všechny postupy , zkontrolujte smyčky a if prohlášení atd. Kompilací kódu VBA pomáhá minimalizovat jakékoli chyby za běhu.
(Další informace o chybách VBA najdete v naší příručce pro zpracování chyb)
Nehlášené proměnné
Pokud nedeklarujete proměnné, ale v horní části vašeho modulu je zapnuta volba Explicit a poté spustíte makro, dojde k chybě kompilace.
Pokud kliknete na OK, příslušný postup přejde do režimu ladění.
Alternativně můžete před spuštěním kódu vynutit kompilaci kódu.
V Jídelní lístek, vyberte Ladění> Kompilovat projekt.
Kompilátor najde všechny chyby kompilace a podle toho zvýrazní první, který najde.
Nehlášené postupy
Pokud kód odkazuje na proceduru, která neexistuje, zobrazí se také chyba kompilace.
Například:
1234 | Sub CallProcedure ()"Tak tady nějaký kód."Zavolejte NextProcedureEnd Sub |
Pokud však postup - Další postup neexistuje, pak dojde k chybě kompilace.
Nesprávné kódování - očekávaný konec prohlášení
Pokud vytvoříte smyčku pomocí Pro… Každý… Další nebo S … Konec s a zapomenout na a další nebo Konec s… dostanete také chybu při kompilaci.
123456 | Sub CompileError ()Dim wb jako sešitDim ws As WorksheetZa každý ws ve wbMsgBox ws.NameEnd Sub |
Totéž se stane s příkazem If, pokud je Konec If vynechán!
Chybějící reference
Pokud používáte objektovou knihovnu, která není součástí Excelu, ale používáte objekty z knihovny v deklaraci proměnné, zobrazí se také chyba kompilace.
To lze vyřešit buď Pozdní vazbou - deklarace proměnných jsou Objekty; nebo přidáním příslušného Objektová knihovna do Projektu.
V Jídelní lístek, vyberte Nástroje> Reference a přidejte do svého projektu příslušnou knihovnu objektů.