Vba: як вийти з sub у разі помилки
Ви можете використовувати оператор Exit Sub у VBA, щоб вийти з підпроцедури, коли виявлено помилку.
Ось поширений спосіб використання цього твердження на практиці:
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
Цей конкретний макрос намагається розділити кожне значення в діапазоні A1:A10 на відповідне значення в діапазоні B1:B10 .
Якщо сталася помилка (наприклад, ми намагаємося поділити на нуль), тоді оператор On Error GoTo повідомляє VBA отримати доступ до ErrorMessage , який повідомляє створити вікно повідомлення про те, що сталася помилка, і завершити підпроцедуру за допомогою Exist Sub . заява.заява.
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: Як створити підсистему у разі помилки у VBA
Припустимо, у нас є наступний список значень у стовпцях A і B:
Тепер припустімо, що ми створюємо такий макрос, щоб розділити кожне значення в стовпці A на відповідне значення в стовпці B і відобразити результати в стовпці 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
Коли ми запускаємо цей макрос, ми отримуємо таку помилку:
Ми отримуємо цю помилку, оскільки в четвертому рядку аркуша Excel ми намагалися поділити на нуль.
Якщо ми просто хочемо вийти з підпроцедури, коли виникає ця помилка, ми можемо використати оператор Exit Sub таким чином:
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
Коли ми запускаємо цей макрос, підпроцедура виконує всі можливі проблеми з розділенням, перш ніж стикається з помилкою, потім з’являється вікно повідомлення, яке повідомляє нам, що сталася помилка, і VBA просто існує в підпроцедурі:
Примітка . Ви можете знайти повну документацію оператора Exit у VBA тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
Як створити папки за допомогою VBA
Як видалити папки за допомогою VBA
Як видалити файли за допомогою VBA