Acest tutorial va explica ce înseamnă o eroare de compilare VBA și cum se produce.
Înainte de a vă rula codul, Editorul VBA compilează codul. Acest lucru înseamnă practic că VBA vă examinează codul pentru a vă asigura că toate cerințele sunt acolo pentru a-l rula corect - va verifica dacă toate variabilele sunt declarate (dacă utilizați Option Explicit pe care ar trebui!), Verificați dacă toate procedurile sunt declarate , verificați buclele și instrucțiunile if etc. Prin compilarea codului, VBA ajută la minimizarea oricăror erori de runtime care apar.
(Consultați Ghidul nostru de gestionare a erorilor pentru mai multe informații despre erorile VBA)
Variabile nedeclarate
Dacă nu declarați variabile, dar Opțiunea explicită este activată în partea de sus a modulului și apoi rulați macrocomanda, va apărea o eroare de compilare.
Dacă faceți clic pe OK, procedura relevantă va intra în modul de depanare.
Alternativ, înainte de a rula codul, puteți forța o compilare a codului.
În Meniul, Selectați Depanare> Compilare proiect.
Compilatorul va găsi orice erori de compilare și îl va evidenția pe primul pe care îl găsește în consecință.
Proceduri nedeclarate
Dacă codul se referă la o procedură care nu există, veți primi și o eroare de compilare.
De exemplu:
1234 | Sub CallProcedure ()atunci ceva cod aiciApelați NextProcedureSfârșitul Sub |
Cu toate acestea, dacă procedura - Următoarea procedură nu există, atunci va apărea o eroare de compilare.
Codificare incorectă - Sfârșitul așteptat
Dacă creați o buclă folosind Pentru … Fiecare … Următorul sau Cu … Încheie cu și uitați de și Următorul sau Se termina cu… Veți primi și o eroare de compilare.
123456 | Sub CompileError ()Dim wb Ca registru de lucruDim ws Ca foaie de lucruPentru fiecare ws În wbMsgBox ws.NameSfârșitul Sub |
Același lucru se va întâmpla cu o instrucțiune If dacă opțiunea End If este omisă!
Referințe lipsă
Dacă utilizați o bibliotecă de obiecte care nu face parte din Excel, dar utilizați obiectele din bibliotecă în declarația variabilă, veți primi și o eroare de compilare.
Acest lucru poate fi rezolvat fie prin Late Binding - declarând că variabilele sunt Obiecte; sau prin adăugarea relevantei Biblioteca de obiecte la proiect.
În Meniul, Selectați Instrumente> Referințe și adăugați biblioteca de obiecte relevante la proiectul dvs.