Rodzaje błędów w VBA dla programu Excel

Użytkownicy często napotykają różne typy błędów w VBA. Poniżej przedstawiamy kilka strategii radzenia sobie z nimi i ich rozwiązywania. Omówimy techniki, których możesz użyć do przesłuchania kodu podczas testowania, a także metody wyłapywania błędów w czasie wykonywania.

Rodzaje błędów w VBA dla programu Excel

Testowanie i śledzenie różnych typów błędów w kodzie VBA może być czasochłonne i frustrujące. Nierzadko słyszy się programistów. Programowanie Programowanie to proces pisania instrukcji do wykonania przez komputer. Jest podobny do przepisu na ludzi. Przepis zawiera listę działań, z których wynika, że ​​ponad 30% czasu spędzają na testowaniu.

Z biegiem czasu unikniesz błędów, ale jest mało prawdopodobne, że kiedykolwiek napiszesz doskonały kod za pierwszym razem. Ucząc się, jak unikać błędów VBA, radzić sobie z nimi i śledzić, zaoszczędzisz sobie mnóstwo czasu w przyszłości.

Rodzaje błędów VBA

Aby było łatwiej, podzieliliśmy rodzaje błędów kodowania na trzy grupy. Dla każdej grupy przeanalizujemy kilka przykładów, a następnie omówimy, jak możesz je zbadać i rozwiązać.

1. Błędy składniowe - określona linia kodu nie została napisana poprawnie

2. Błędy kompilacji - Problemy, które pojawiają się podczas łączenia wierszy kodu, chociaż poszczególne wiersze kodu wydają się mieć sens

3. Błędy w czasie wykonywania - gdy kod jest zasadniczo prawidłowy, ale działanie podjęte przez użytkownika lub używane dane prowadzi do nieoczekiwanych błędów.

Co to są błędy składniowe?

Błędy składniowe to sposób, w jaki VBA mówi ci, czy twój kod ma sens, na najbardziej podstawowych poziomach. Możemy dokonać prostego porównania do zasad pisania zdania w języku angielskim:

  • Przedmiotem jest wymagane.
  • Czasownik jest wymagane.
  • Kapitał list jest wymagane na początku.
  • Na końcu wymagana jest interpunkcja .
  • Przedmioty, przymiotniki i inne cechy gramatyczne są opcjonalne.

Jane znalazła 18 błędów w swoim kodzie VBA .

W podobny sposób VBA narzuca pewne reguły dotyczące tego, co jest wymagane w określonych sytuacjach. Na przykład podczas inicjowania podstawowej warunkowej instrukcji JEŻELI w kodzie należy powtórzyć następujące reguły składniowe dla pierwszego wiersza instrukcji JEŻELI;

  • Musi zaczynać się od If
  • Następnie musi być test logiczny , taki jak x> 10
  • Należy wreszcie skończyć ze słowem następnie

Jeśli NumberErrors> 20 to

Jeśli złamiesz powyższe zasady języka angielskiego lub VBA, twoja gramatyka (angielski) lub składnia (VBA) zostanie uznana za nieprawidłową.

Jak zidentyfikować błąd składniowy

Edytor VBA wyróżnia błędy składniowe na czerwono, umożliwiając ich łatwą identyfikację i rozwiązywanie. Ponadto, jeśli spróbujesz uruchomić kod lub rozpocząć nowy wiersz, zostanie wyświetlony poniższy komunikat o błędzie składni.

Podstawowy błąd składni:

Podstawowa składnia erro

Okno komunikatu o błędzie składni:

Pole komunikatu o błędzie składni

Aby upewnić się, że sprawdzanie odbywa się podczas pisania, włącz opcję „Automatyczne sprawdzanie składni” w menu Opcje.

Automatyczne sprawdzanie składni

Jak rozwiązywać błędy składniowe

Błędy składniowe reprezentują błędy w sposobie pisania określonej linii kodu. Należy je naprawić, zanim będzie można uruchomić kod. Z doświadczeniem wystarczy czerwony tekst, aby wykryć błąd. Ale jeśli nadal utkniesz, po prostu wyszukaj w Internecie „jeśli składnia instrukcji vba” lub jakąkolwiek odmianę odpowiadającą Twoim potrzebom, a znajdziesz mnóstwo przykładów konkretnego wiersza, który próbujesz napisać.

Co to są błędy kompilacji?

Błędy kompilacji odnoszą się do szerszej grupy błędów języka VBA, które obejmują błędy składniowe. Błędy kompilacji również identyfikują problemy z kodem, gdy są rozpatrywane jako całość. Składnia każdego pojedynczego wiersza może być poprawna, ale zestawione razem wiersze kodu nie mają sensu. Błędy kompilacji są wyróżniane podczas kompilowania lub uruchamiania kodu.

Jak zidentyfikować błąd kompilacji

Po uruchomieniu kodu VBA błędy kompilacji zostaną przedstawione w oknie dialogowym VBA, jak na poniższych przykładach.

Alternatywnie, jeśli projekt jest długi lub złożony i obejmuje wiele procedur, pomocne może być skompilowanie kodu przed jego uruchomieniem. Zapobiega sytuacjom, w których połowa twojego kodu działa pomyślnie, a następnie pojawia się błąd. Możesz skompilować swój kod VBA, klikając menu Debuguj → Kompiluj projekt VBA.

Przykład 1

Błąd kompilacji dla brakującej części „End if” instrukcji IF. Każdy pojedynczy wiersz w kodzie jest poprawny, ale razem nie reprezentują one pełnej instrukcji IF.

Błąd kompilacji - przykład 1

Przykład 2

W tym przykładzie proces kompilacji VBA wykrył błąd składni podświetlony na czerwono. VBA wskazuje, że w poniższym kodzie brakuje zamykającego nawiasu w funkcji.

Błąd kompilacji - przykład 2

Przykład 3

Błędy kompilacji są typowe podczas korzystania z opcji Option Explicit i występują, gdy zmienna nie została jawnie zdefiniowana. Po aktywowaniu Option Explicit instrukcja Dim jest wymagana do zadeklarowania wszystkich zmiennych, zanim będą mogły być użyte w kodzie.

Błąd kompilacji - przykład 3

Jak rozwiązać błędy kompilacji

Błędy kompilacji VBA zapobiegną uruchomieniu procedur, których dotyczą. Dopóki ich nie naprawisz, kod nie będzie poprawnie interpretowany przez VBA. Okna komunikatów o błędach często zawierają bardziej pomocne porady niż w przypadku błędów składniowych.

Jeśli nie od razu wiesz, na czym polega problem z komunikatu o błędzie, spróbuj skorzystać z Centrum pomocy firmy Microsoft, aby dowiedzieć się, jak dokładnie powinna być napisana instrukcja lub funkcja. Oto przykład komunikatu o błędzie „Blokuj, jeśli bez końca, jeśli” w witrynie internetowej firmy Microsoft.

Zablokuj, jeśli bez końca, jeśli

Co to są błędy w czasie wykonywania?

Po naprawieniu błędów składniowych i błędów kompilacji możesz przystąpić do testowania lub prawidłowego uruchamiania kodu, aby zobaczyć, jak dobrze wykonuje on żądane działania lub obliczenia. Okres testowania, czyli wykonanie kodu na żywo, nazywamy „środowiskiem uruchomieniowym”.

Błędów czasu wykonania nie można wykryć po prostu patrząc na kod; są one wynikiem interakcji twojego kodu z określonymi wejściami lub danymi w tym czasie.

Błędy w czasie wykonywania są często spowodowane nieoczekiwanymi danymi przekazywanymi do kodu VBA, niezgodnością typów danych, dzieleniem przez nieoczekiwane zera i niedostępnością zdefiniowanych zakresów komórek. Błędy uruchomieniowe są również najbardziej zróżnicowanymi i złożonymi do wyśledzenia i naprawienia.

Jak zidentyfikować błędy w czasie wykonywania

Debugowanie w VBA VBA: jak debugować kod Podczas pisania i uruchamiania kodu VBA ważne jest, aby użytkownik nauczył się debugowania błędów kodu. Oczekuje się od użytkownika programu Excel, że funkcja kodu podświetli kod problemu na żółto i daje nam małą wskazówkę, co jest przyczyną problemu.

Przykład 1

Chociaż poniższy kod po prostu dzieli jedną liczbę przez drugą, są pewne przypadki, w których nie będzie to możliwe. Na przykład, jeśli komórka A1 = 2 i komórka A2 = 0, nie można podzielić przez zero. Pole błędu czasu wykonania zawiera przycisk debugowania, który wyróżnia kod problemu.

Błąd wykonania - przykład 1

Błędy czasu wykonania - przykład 1a

Przykład 2

W tym przykładzie utworzyłem tablicę, aby zebrać nazwy n firm w moim arkuszu. Następnie spróbowałem odnieść się do szóstego elementu, który może istnieć lub nie w czasie wykonywania. VBA wyświetla komunikat o błędzie w czasie wykonywania i pozwala mi nacisnąć przycisk Debuguj, aby zbadać problem.

Błąd wykonania - przykład 2

Po naciśnięciu przycisku Debugowanie VBA podświetla wiersz kodu, który powoduje problem. Teraz muszę użyć komunikatu „Indeks poza zakresem”, aby sprawdzić, co się dzieje. Błąd poza zakresem indeksu dolnego zazwyczaj oznacza, że ​​kod jest zasadniczo dobry, ale nie można znaleźć określonego elementu, którego szukasz. Najczęściej zdarza się to podczas odwoływania się do komórek lub zakresów w programie Excel, a także tablic w kodzie VBA.

Błąd wykonania - przykład 2a

Aby upewnić się, że funkcja debugowania jest włączona, w menu Opcje> Ogólne> Trapping błędów domyślnym stanem powinno być „Przerwij przy nieobsługiwanych błędach”. Pozostaw zaznaczoną opcję.

Przerwij przy nieobsługiwanych błędach

Jak rozwiązywać błędy w czasie wykonywania

Ponieważ błędy w czasie wykonywania są zróżnicowane i złożone, rozwiązania są również zróżnicowane. Dwie ogólne metody ograniczania błędów w czasie wykonywania to:

Przechwytywanie błędów

Warto zastanowić się nad możliwymi scenariuszami, jakie może napotkać Twój kod. Jeszcze lepsze jest testowanie kodu na danych praktycznych lub z rzeczywistymi użytkownikami. Pozwoli ci to rozpoznać takie scenariusze w twoim VBA, z rozgałęzianiem kodu na różne wyniki, w zależności od tego, czy istnieją błędy.

Przykład 1

W tym przypadku wiersz „On Error Resume Next” wymusza kontynuację kodu, nawet jeśli zostanie wykryty błąd. Następnie używamy testu If Err> 0, aby utworzyć komunikat ostrzegawczy, tylko jeśli błąd istnieje. Opcja „Przy błędzie Idź do 0” resetuje VBA do stanu domyślnego.

Przechwytywanie błędów - przykład 1

Przykład 2

Tutaj kod oblicza dzienny dochód na podstawie miesięcznego dochodu i określonej liczby dni. Jeśli liczba dni nie jest podana, przechodzimy do zdefiniowanego punktu w naszym kodzie o nazwie „NoDaysInMonthProvided:”, w którym jako podstawę przyjmujemy średnią liczbę dni w miesiącu. Chociaż jest to uproszczone, wyraźnie pokazuje, jak przechwycić błąd i przejść do innego punktu w kodzie.

Przechwytywanie błędów - przykład 2

Jasne instrukcje dla użytkownika

Przejrzysta dokumentacja i etykiety arkuszy roboczych zapewnią, że użytkownicy będą współpracować z modelem w zamierzony sposób. Pomoże im to zapobiec podczas wprowadzania tekstu zamiast liczb lub pozostawiania zer, które mogą później wpłynąć na kod.

Podsumowanie

Istnieją trzy kluczowe typy błędów w języku VBA, które mogą wpływać na kod na różne sposoby. Ważne jest, aby aktywować opcje wykrywania błędów VBA, takie jak debugger i automatyczne sprawdzanie składni. Pomogą Ci ustalić lokalizację i charakter błędów.

Więcej zasobów

Finance jest oficjalnym dostawcą globalnego certyfikatu Certified Banking & Credit Analyst (CBCA) ™ CBCA ™ Akredytacja Certified Banking & Credit Analyst (CBCA) ™ to globalny standard dla analityków kredytowych obejmujący finanse, księgowość, analizę kredytową, analizę przepływów pieniężnych , modelowanie warunków umowy, spłaty pożyczek i nie tylko. program certyfikacji, mający pomóc każdemu zostać światowej klasy analitykiem finansowym. Poniższe dodatkowe zasoby będą przydatne, aby kontynuować karierę:

  • #REF Błędy programu Excel #REF Błędy programu Excel #REF Błędy programu Excel powodują duże problemy w arkuszach kalkulacyjnych. Dowiedz się, jak znaleźć i naprawić błędy #REF w programie Excel w tym krótkim samouczku z przykładami i zrzutami ekranu. A #REF! błąd („ref” oznacza odniesienie) to komunikat wyświetlany w programie Excel, gdy formuła odwołuje się do komórki, która już nie istnieje, spowodowana usunięciem komórek, które
  • Przykłady Excel VBA Przykłady Excel VBA Excel VBA umożliwia użytkownikowi tworzenie makr, które automatyzują procesy w Excelu. W tym przewodniku wykorzystamy przykłady Excel VBA, aby pokazać, jak zarejestrować makro, konfigurując makro, jak deklarować zmienne i jak odwoływać się do danych.
  • Wskazówki dotyczące pisania VBA w Excelu Wskazówki dotyczące pisania VBA w Excelu Poniżej znajduje się dziewięć wskazówek dotyczących pisania VBA w Excelu. VBA for Excel oferuje niezliczone możliwości niestandardowych obliczeń i automatyzacji.
  • Metody VBA Metody VBA Metoda VBA to fragment kodu dołączony do obiektu VBA, zmiennej lub odniesienia do danych, który informuje program Excel, jakie działanie ma wykonać w odniesieniu do tego obiektu. Kopiowanie, wklejanie i wybieranie to tylko niektóre przykłady metod VBA, które można wykonać.

Zalecane

Czy Crackstreams zostały zamknięte?
2022
Czy centrum dowodzenia MC jest bezpieczne?
2022
Czy Taliesin opuszcza kluczową rolę?
2022