Vba: jak wyjść z sub w przypadku błędu
Za pomocą instrukcji Exit Sub w języku VBA można zakończyć podprocedurę w przypadku napotkania błędu.
Oto powszechny sposób użycia tego stwierdzenia w praktyce:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
To konkretne makro próbuje podzielić każdą wartość z zakresu A1:A10 przez odpowiednią wartość z zakresu B1:B10 .
Jeśli wystąpi błąd (na przykład, próbujemy podzielić przez zero), wówczas instrukcja On Error GoTo nakazuje VBA uzyskanie dostępu do ErrorMessage , co nakazuje wygenerowanie okna komunikatu informującego użytkownika, że wystąpił błąd i zakończenie podprocedury za pomocą Exist Sub . oświadczenie.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Jak istnieć sub w przypadku błędu w VBA
Załóżmy, że mamy następującą listę wartości w kolumnach A i B:
Załóżmy teraz, że tworzymy następujące makro, aby podzielić każdą wartość w kolumnie A przez odpowiednią wartość w kolumnie B i wyświetlić wyniki w kolumnie C:
Sub DivideValues()
Dim i As Integer
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
End Sub
Po uruchomieniu tego makra pojawia się następujący błąd:
Otrzymujemy ten błąd, ponieważ w czwartym wierszu arkusza Excela próbowaliśmy podzielić przez zero.
Jeśli po wystąpieniu tego błędu chcemy po prostu zakończyć podprocedurę, możemy użyć instrukcji Exit Sub w następujący sposób:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Kiedy uruchamiamy to makro, podprocedura wykonuje wszystkie możliwe problemy z dzieleniem, zanim napotka błąd, następnie pojawia się okno z informacją, że wystąpił błąd, a VBA po prostu istnieje w podprocedurze:
Uwaga : Pełną dokumentację instrukcji Exit w VBA znajdziesz tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
Jak tworzyć foldery za pomocą VBA
Jak usunąć foldery za pomocą VBA
Jak usunąć pliki za pomocą VBA