Tento tutoriál vysvetlí, čo znamená chyba kompilácie VBA a ako sa vyskytuje.
Pred spustením kódu editor VBA kód skompiluje. To v podstate znamená, že VBA skontroluje váš kód, aby sa ubezpečil, že sú tam všetky požiadavky na jeho správne spustenie - skontroluje, či sú deklarované všetky premenné (ak použijete Option Explicit, ktorý by ste mali!), Skontrolujte, či sú deklarované všetky postupy , skontrolujte slučky a if príkazy atď. Kompiláciou kódu VBA pomáha minimalizovať chyby, ktoré sa môžu vyskytnúť pri spustení.
(Ďalšie informácie o chybách VBA nájdete v našej príručke na spracovanie chýb)
Nedeklarované premenné
Ak nedeklarujete premenné, ale explicitný parameter je zapnutý v hornej časti modulu a potom spustíte makro, vyskytne sa chyba kompilácie.
Ak kliknete na tlačidlo OK, príslušný postup prejde do režimu ladenia.
Prípadne pred spustením kódu môžete vynútiť kompiláciu kódu.
V Ponuka, vyberte Ladenie> Kompilovať projekt.
Kompilátor nájde všetky chyby pri kompilácii a podľa toho zvýrazní prvú, ktorú nájde.
Nehlásené postupy
Ak kód odkazujete na postup, ktorý neexistuje, zobrazí sa tiež chyba pri kompilácii.
Napríklad:
1234 | Vedľajší postup hovoru ()„Tak tu je nejaký kódZavolajte na NextProcedureKoniec pod |
Ak však postup - Ďalší postup neexistuje, potom dôjde k chybe kompilácie.
Nesprávne kódovanie - predpokladaný koniec vyhlásenia
Ak vytvoríte slučku pomocou Pre … Každý … Ďalší alebo S … Koniec s a zabudni na a Ďalšie alebo Ukončiť s… dostanete tiež chybu pri kompilácii.
123456 | Sub CompileError ()Dim wb ako zošitDim ws As worksheetZa každú ws vo wbMsgBox ws.NameKoniec pod |
To isté sa stane s príkazom If, ak sa vynechá End If!
Chýbajúce referencie
Ak používate knižnicu objektov, ktorá nie je súčasťou programu Excel, ale vo svojej deklarácii premennej používate objekty z knižnice, zobrazí sa tiež chyba pri kompilácii.
To je možné vyriešiť buď Neskorou väzbou - deklarovaním premenných sú Objekty; alebo pridaním príslušného Objektová knižnica k Projektu.
V Ponuka, vyberte Nástroje> Referencie a pridajte do svojho projektu príslušnú knižnicu objektov.