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 OccurredExit 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 OccurredExit Sub
    
End Sub

Коли ми запускаємо цей макрос, підпроцедура виконує всі можливі проблеми з розділенням, перш ніж стикається з помилкою, потім з’являється вікно повідомлення, яке повідомляє нам, що сталася помилка, і VBA просто існує в підпроцедурі:

Помилка виведення VBA під

Примітка . Ви можете знайти повну документацію оператора Exit у VBA тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

Як створити папки за допомогою VBA
Як видалити папки за допомогою VBA
Як видалити файли за допомогою VBA

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *