Denna handledning kommer att förklara vad ett VBA -kompileringsfel betyder och hur det uppstår.
Innan du kör din kod kompilerar VBA Editor koden. Detta betyder i princip att VBA undersöker din kod för att se till att alla krav finns för att köra den korrekt - den kommer att kontrollera att alla variabler deklareras (om du använder Option Explicit som du borde!), Kontrollera att alla procedurer är deklarerade , kontrollera slingorna och om påståenden etc. Genom att sammanställa koden hjälper VBA till att minimera eventuella driftstidsfel.
(Se vår felhanteringsguide för mer information om VBA -fel)
Odeklarerade variabler
Om du inte deklarerar variabler, men alternativet Explicit är aktiverat högst upp i modulen, och sedan kör du makrot, uppstår ett kompileringsfel.
Om du klickar på OK kommer den relevanta proceduren att gå till felsökningsläge.
Alternativt, innan du kör din kod, kan du tvinga fram en sammanställning av koden.
I Meny, Välj Debug> Kompilera projekt.
Kompilatorn hittar eventuella kompileringsfel och markerar det första som den hittar därefter.
Odeklarerade förfaranden
Om du kodar refererar till en procedur som inte finns, får du också ett kompileringsfel.
Till exempel:
1234 | Sub CallProcedure ()'lite kod här dåRing NextProcedureAvsluta Sub |
Men om proceduren - Nästa förfarande existerar inte, uppstår ett kompileringsfel.
Felaktig kodning - Förväntat slut på uttalande
Om du skapar en loop med För… Varje… Nästa eller Med … Sluta med och glöm till och Nästa eller den Sluta med… får du också ett kompileringsfel.
123456 | Sub CompileError ()Dim wb Som arbetsbokDim ws Som arbetsbladFör varje ws i wbMsgBox ws.NameAvsluta Sub |
Detsamma kommer att hända med ett If -uttalande om End If utelämnas!
Referenser saknas
Om du använder ett objektbibliotek som inte ingår i Excel, men du använder objekten från biblioteket i din variabeldeklaration, får du också ett kompileringsfel.
Detta kan lösas genom antingen sen bindning - deklarera att variablerna är objekt; eller genom att lägga till relevant Objektbibliotek till projektet.
I Meny, Välj Verktyg> Referenser och lägg till det relevanta objektbiblioteket i ditt projekt.