Obsługa błędów w programie Excel VBA - łatwe makra programu Excel

Spisie treści

Poniżej przyjrzymy się dwóm programom w Excel VBA. Jeden program po prostu ignoruje błędy. Drugi program kontynuuje wykonanie w określonej linii po trafieniu w błąd.

Sytuacja:

Oba programy obliczają pierwiastek kwadratowy z liczb.

Pierwiastek kwadratowy 1

Dodaj następujące wiersze kodu do przycisku polecenia „Square Root 1”.

1. Najpierw deklarujemy dwa obiekty Range. Nazywamy obiekty Range rng i cell.

Dim rng As Range, komórka As Range

2. Inicjujemy obiekt Range rng z wybranym zakresem.

Ustaw rng = Wybór

3. Chcemy obliczyć pierwiastek kwadratowy z każdej komórki w losowo wybranym zakresie (ten zakres może mieć dowolny rozmiar). W Excel VBA możesz użyć do tego pętli For Each Next. Dodaj następujące wiersze kodu:

Dla każdej komórki w rng
Następna komórka

Uwaga: rng i komórka są tutaj wybierane losowo, możesz użyć dowolnych nazw. Pamiętaj, aby odwoływać się do tych nazw w pozostałej części kodu.

4. Dodaj następującą linię kodu do pętli.

Przy błędzie Wznów Dalej

5. Następnie obliczamy pierwiastek kwadratowy z wartości. W Excel VBA możemy do tego użyć funkcji Sqr. Dodaj następującą linię kodu do pętli.

komórka.Wartość = Sqr(komórka.Wartość)

6. Wyjdź z Edytora Visual Basic i przetestuj program.

Wynik:

Wniosek: Excel VBA zignorował komórki zawierające nieprawidłowe wartości, takie jak liczby ujemne i tekst. Bez użycia instrukcji „On Error Resume Next” otrzymasz dwa błędy. Uważaj, aby używać instrukcji „On Error Resume Next” tylko wtedy, gdy masz pewność, że ignorowanie błędów jest w porządku.

Pierwiastek kwadratowy 2

Dodaj następujące wiersze kodu do przycisku polecenia „Square Root 2”.

1. Ten sam program co Square Root 1, ale zastąp 'On Error Resume Next' następującym:

W przypadku błędu przejdź do nieprawidłowej wartości:

Uwaga: InvalidValue jest tutaj wybierana losowo, możesz użyć dowolnej nazwy. Pamiętaj, aby w pozostałej części kodu odwoływać się do tej nazwy.

2. Poza pętlą For Each Next najpierw dodaj następujący wiersz kodu:

Wyjście Sub

Bez tej linii reszta kodu (kod błędu) zostanie wykonana, nawet jeśli nie ma błędu!

3. Excel VBA kontynuuje wykonywanie w wierszu zaczynającym się od „InvalidValue:” po wystąpieniu błędu (nie zapomnij o dwukropku). Dodaj następującą linię kodu:

Niewłaściwa wartość:

4. Na razie utrzymujemy prosty kod błędu. Wyświetlamy MsgBox z tekstem i adresem komórki, w której wystąpił błąd.

MsgBox "nie można obliczyć pierwiastka kwadratowego w komórce " & cell.Adres

5. Dodaj następujący wiersz, aby poinstruować program Excel VBA, aby wznowił wykonywanie po wykonaniu kodu błędu.

Wznów Dalej

6. Wyjdź z Edytora Visual Basic i przetestuj program.

Wynik:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave