Ten samouczek wyjaśni, co oznacza błąd kompilacji VBA i jak on występuje.
Przed uruchomieniem kodu edytor VBA kompiluje kod. Zasadniczo oznacza to, że VBA sprawdza twój kod, aby upewnić się, że wszystkie wymagania są spełnione, aby go poprawnie uruchomić - sprawdzi, czy wszystkie zmienne są zadeklarowane (jeśli używasz Option Explicit, co powinieneś!), sprawdź, czy wszystkie procedury są zadeklarowane , sprawdź pętle i instrukcje if itp. Kompilując kod, VBA pomaga zminimalizować wszelkie występujące błędy w czasie wykonywania.
(Zobacz nasz Przewodnik obsługi błędów, aby uzyskać więcej informacji na temat błędów VBA)
Niezadeklarowane zmienne
Jeśli nie zadeklarujesz zmiennych, ale twoja Option Explicit jest włączona w górnej części twojego modułu, a następnie uruchomisz makro, wystąpi błąd kompilacji.
Jeśli klikniesz OK, odpowiednia procedura przejdzie w tryb debugowania.
Alternatywnie, przed uruchomieniem kodu, możesz wymusić kompilację kodu.
w Menu, Wybierz Debuguj > Kompiluj projekt.
Kompilator znajdzie wszelkie błędy kompilacji i odpowiednio podświetli pierwszy znaleziony.
Procedury niezadeklarowane
Jeśli kod odwołuje się do procedury, która nie istnieje, otrzymasz również błąd kompilacji.
Na przykład:
1234 | Podrzędna procedura wywołania()'tutaj jakiś kodZadzwoń do następnej proceduryNapis końcowy |
Jeśli jednak procedura - NastępnaProcedura nie istnieje, wystąpi błąd kompilacji.
Nieprawidłowe kodowanie – oczekiwany koniec wypowiedzi
Jeśli utworzysz pętlę za pomocą Dla… Każdy… Dalej lub Z… Zakończ z i zapomnij i Następny albo Kończyć z… otrzymasz również błąd kompilacji.
123456 | Błąd kompilacji podrzędnej()Dim wb jako skoroszytDim ws As WorksheetDla każdego ws W wbMsgBox ws.NameNapis końcowy |
To samo stanie się z instrukcją If, jeśli pominięto End If!
Brakujące odniesienia
Jeśli używasz biblioteki obiektów, która nie jest częścią programu Excel, ale używasz obiektów z biblioteki w deklaracji zmiennej, otrzymasz również błąd kompilacji.
Można to rozwiązać przez późne wiązanie - deklarując, że zmienne są obiektami; lub dodając odpowiednie Biblioteka obiektów do Projektu.
w Menu, Wybierz Narzędzia > Referencje i dodaj odpowiednią bibliotekę obiektów do swojego projektu.