VBA obsługa błędów – Jak sobie radzić z błędami

1. VBA Obsługa błędów – Jak z niej korzystać?

W tym artykule dowiesz się czym jest obsługa błędów VBA i jak z niej efektywnie korzystać. W języku VBA jak w każdym innym podczas pisania programów pojawiają się błędy. Mogą wynikać m. in. z nieprawidłowej składni lub logiki programu. Błędy, które mogą wystąpić w VBA możemy podzielić na:

  • Błędy składniowe
  • Błędy logiczne
  • Błędy czasu wykonywania programu tzw. Runtime Errors
  • Błędy obiektów

Każdy z powyższych błędów można odpowiednio zdiagnozować i obsłużyć w kodzie VBA. Możemy znaleźć numer błędu oraz jego opis.

2. Obsługa błędów VBA – Error Handling

Obsługa błędów w VBA polega głównie na napisaniu tzw. Handlera, a więc kodu wywołującego określoną akcję po wystąpieniu błędu. Jak napisać taki program? Składnia kodu obsługi błędów opisana jest poniżej:

2.1. Resume Next – Wprowadzając np na początku programu kod On Error Resume Next, nakazujemy VB ignorować wszystkie błędy. Tak więc, gdy błąd wystąpi, program go pominie i przejdzie do kolejnej linii kodu. Wbrew pozorom jest to instrukcja bardzo użyteczna np przy tworzeniu automatycznych raportów.

2.2 GoTo Line – To właśnie te polecenie służy do odniesienia się do tzw. Handlera. W momencie wystąpienia błędu, program za pomocą instrukcji VBA GoTo przeskakuje do bloku kodu, w którym opisane są np szczegóły błędu. Możemy tutaj przy pomocy funkcji Err określić numer błędu, opis błędu, odniesienie do właściwego punktu w pliku pomocy. Po obsłudze błędu możemy go wyczyścić za pomocą polecenia Err.Clear. Konkretny przykład obsługi błędu za pomocą handlera zamieszczam poniżej:

Kurs Excel VBA - Obsługa błędów vba

Kurs Excel VBA – Obsługa błędów vba

2.3 GoTo 0 – wyłącza obsługę błędów przez Handlera. Przykładowo część naszego kodu powinna być obsłużona Handlerem, a inna część nie. Za pomocą instrukcji On Error GoTo 0 wyłączamy wcześniej zadeklarowaną obsługę błędów. Poniżej przykład. W pierwszym przypadku błąd dzielenia przez zero został obsłużony przez Handler, w drugim nie.

Artykuł jest częścią kursu vba Excel. Całość kursu znajdziesz pod tym linkiem: Kurs VBA. Poniżej zamieszczam plik z kodem programu:

Kurs_excel_vba_obsluga_bledow.xlsm

Leave Comment

Twój adres email nie zostanie opublikowany.