Оператор Exit — Visual Basic
- Статья
- Чтение занимает 3 мин
Завершает процедуру или блокировку и немедленно передает управление оператору после вызова процедуры или определения блока.
Синтаксис
Exit { Do | For | Function | Property | Select | Sub | Try | While }
Exit Do
Немедленно завершает Do цикл, в котором он отображается. Выполнение продолжается с помощью инструкции, следующей за инструкцией Loop . Exit Do можно использовать только внутри Do цикла. При использовании в вложенных Do циклах Exit Do выходит из самого внутреннего цикла и передает управление следующему более высокому уровню вложения.
Exit For
Немедленно завершает For цикл, в котором он отображается. Выполнение продолжается с помощью инструкции, следующей за инструкцией Next . Exit For может использоваться только внутри Forцикла …Next или For Each…Next . При использовании в вложенных For циклах Exit For выходит из самого внутреннего цикла и передает управление следующему более высокому уровню вложения.
Exit Function
Немедленно завершает процедуру Function , в которой она отображается. Выполнение продолжается с помощью инструкции, следующей за оператором, который вызвал процедуру Function . Exit Function можно использовать только внутри Function процедуры.
Чтобы указать возвращаемое значение, можно назначить значение имени функции в строке перед инструкцией Exit Function . Чтобы назначить возвращаемое значение и выйти из функции в одной инструкции, можно использовать оператор Return.
Exit Property
Немедленно завершает процедуру Property , в которой она отображается. Выполнение продолжается с инструкцией, которая называется Property процедурой, то есть с инструкцией, запрашивающей или задающей значение свойства. Exit Property может использоваться только внутри свойства Get или Set процедуры.
Чтобы указать возвращаемое значение в Get процедуре, можно назначить значение имени функции в строке перед инструкцией Exit Property . Чтобы назначить возвращаемое значение и выйти Get из процедуры в одной инструкции, можно использовать инструкцию .
В процедуре Set инструкция Exit Property эквивалентна оператору Return .
Exit Select
Немедленно завершает блок Select Case , в котором он отображается. Выполнение продолжается с помощью инструкции, следующей за инструкцией End Select .
Exit Select может использоваться только внутри инструкции Select Case .
Exit Sub
Немедленно завершает процедуру Sub , в которой она отображается. Выполнение продолжается с помощью инструкции, следующей за оператором, который вызвал процедуру Sub . Exit Sub можно использовать только внутри Sub процедуры.
В процедуре Sub инструкция Exit Sub эквивалентна оператору Return .
Exit Try
Немедленно выходит из Try блока, Catch в котором он отображается. Выполнение продолжается с блоком Finally , если таковой имеется, или с оператором, приведенным после инструкции End Try , в противном случае. Exit Try можно использовать только внутри Try блока или Catch блока, а не внутри Finally блока.
Exit While
Немедленно завершает While цикл, в котором он отображается.
Выполнение продолжается с помощью инструкции, следующей за инструкцией End While . Exit While можно использовать только внутри While цикла. При использовании в вложенных While циклах Exit While передает управление циклу, который является одним вложенным уровнем над циклом, где происходит.
Не путайте Exit операторы с End операторами. Exit не определяет конец инструкции.
Пример 1
В следующем примере условие цикла останавливает цикл, если index переменная больше 100. Однако оператор If в цикле приводит Exit Do к остановке цикла, если переменная индекса больше 10.
Dim index As Integer = 0
Do While index <= 100
If index > 10 Then
Exit Do
End If
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
Пример 2
В следующем примере возвращается возвращаемое значение имени myFunctionфункции, а затем используется Exit Function для возврата из функции:
Function MyFunction(ByVal j As Integer) As Double
MyFunction = 3.
87 * j
Exit Function
End Function
Пример 3
В следующем примере оператор Return используется для назначения возвращаемого значения и выхода из функции:
Function MyFunction(ByVal j As Integer) As Double
Return 3.87 * j
End Function
См. также раздел
- Оператор Continue
- Оператор Do…Loop
- Оператор End
- Оператор For Each…Next
- Оператор For…Next
- Оператор Function
- Оператор return
- Оператор Stop
- Оператор Sub
- Оператор Try…Catch…Finally
Заявление о выходе (VBA) | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Выполняет выход из блока кода операторов Do…Loop, For…Next, Function, Sub или Property.
Синтаксис
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
Синтаксис оператора Exit состоит из следующих частей:
| Statement | Описание |
|---|---|
| Exit Do | Предоставляет способ выхода из do… Заявление цикла . Может использоваться только в пределах оператора Do…Loop. Exit Do передает управление оператору, следующему за оператором Loop. При использовании в пределах вложенных операторов Do…Loop, Exit Do передает управление в цикл, находящийся на один вложенный уровень выше, чем цикл, где выполняется оператор Exit Do. |
| Exit For | Предоставляет способ выхода из цикла For. Его можно использовать только в for.![]() |
| Exit Function | Немедленно выходит из процедуры Function, в которой она отображается. Выполнение продолжается с использованием оператора, который следует за оператором, выполнившим вызов процедуры Function. |
| Exit Property | Немедленно выходит из процедуры Свойства , в которой она отображается. Выполнение продолжается с использованием оператора, который следует за оператором, выполнившим вызов процедуры Property. |
| Exit Sub | Немедленно выходит из процедуры Sub , в которой она отображается. Выполнение продолжается с использованием оператора, который следует за оператором, выполнившим вызов процедуры Sub. |
Не следует путать операторы Exit и End. Оператор Exit не определяет завершение структуры.
Пример
В этом примере оператор Exit используется для выхода из цикла For…Next, процедур Do…Loop и Sub.
Sub ExitStatementDemo() Dim I, MyNum Do ' Set up infinite loop. For I = 1 To 1000 ' Loop 1000 times. MyNum = Int(Rnd * 1000) ' Generate random numbers. Select Case MyNum ' Evaluate random number. Case 7: Exit For ' If 7, exit For...Next. Case 29: Exit Do ' If 29, exit Do...Loop. Case 54: Exit Sub ' If 54, exit Sub procedure. End Select Next I Loop End Sub
См. также
- Типы данных
- Операторы
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см.
в статье Поддержка Office VBA и обратная связь.
VBA Exit Sub или Function
В VBA вы можете выйти из Sub или Function с помощью команд Exit Sub или Exit Function .
Exit Sub Exit Function Когда выполнение кода доходит до Exit Sub или Exit Function , он выйдет из Sub или Function и продолжит выполнение любого другого кода.
Если вы хотите узнать, как выйти из Sub при ошибке, нажмите на эту ссылку: VBA On Error Exit Sub
Если вы хотите узнать, как завершить выполнение всего кода, нажмите на эту ссылку: VBA End
Exit a Sub в VBA
На примере вы увидите, что происходит, когда мы используем команду Exit Sub в Под. Мы создали Sub ExitSub , внутри которого находится команда Exit Sub . Sub CallExitSub вызывает этот Sub.
Вот код:
Private Sub ExitSub()
Dim i как целое число
Для i = от 1 до 10
Если я = 5 Тогда
Выйти из подпрограммы
MsgBox "Значение i равно" & i
Конец, если
Далее я
Конец сабвуфера
Частная подпрограмма CallExitSub()
Вызов ExitSub
MsgBox "Выход из подпрограммы"
Конец суб
В ExitSub мы сначала входим в цикл For, если значение i меньше 10:
For i = от 1 до 10
Next i После этого мы проверяем, равно ли значение i 5, используя команду If. Если значение равно 5, мы хотим выйти из Sub и вернуть окно сообщения со значением i:
Если i = 5, то
Выйти из подпрограммы
MsgBox "Значение i равно" & i
End If Если условие не выполняется, следующий оператор увеличивает i на 1 и снова входит в цикл For:
Далее i В Callexitsub мы сначала позвонили в Sub Exitsub :
Вызов Exitsub после этого мы возвращаем ящик сообщения:
MSGBox ».
CallExitSub , он сначала вызовет ExitSub . Если вы выполните этот код в режиме отладки, вы увидите, что он пройдет цикл 5 раз. На 5-й -й -й итерации значение переменной i становится равным 5, и код вводится в тело If. Теперь саб ExitSub завершается и возвращается к CallExitSub . Следующая строка MsgBox «Exit Sub» :
никогда не будет выполнен.
Выход из функции в VBA
Выход из функции в VBA аналогичен выходу из Sub, только команда Exit Function . В примере мы создали ExitFunc , который возвращает целое число. Sub CallExitFunction вызывает эту функцию . Вот код:
Частная функция ExitFunc() As Integer
Dim i как целое число
Для i = от 1 до 10
Если я = 5 Тогда
ExitFunc = я
Выход из функции
Конец, если
Далее я
Конечная функция
Частная подпрограмма CallExitFunction()
Dim intFunc как целое число
intFunc = ExitFunction()
MsgBox "Значение intFunc равно " & intFunc
End Sub
В ExitFunc , мы сначала входим в цикл For, если значение i меньше 10:
For i = от 1 до 10
Next i
После этого мы проверяем, равно ли значение i 5, используя команду If.
Если значение равно 5, мы присваиваем результату функции значение i и выходим из функции:
Если i = 5 Тогда
ExitFunc = я
Выход из функции
End If Если условие не выполнено, следующий оператор увеличивает i на 1 и снова входит в цикл For:
Next i
В CallExitFunction мы сначала вызываем функцию ExitFunc : Для этого мы должны объявить переменную intFunc типа integer и присвоить ей результат функции ExitFunc 9011 intmunt 901: Как целое число
intFunc = ExitFunction()
После этого мы возвращаем окно сообщения со значением intFunc :
MsgBox «Значение intFunc равно» & intFunc
Если вы запустите CallExitFunction , он сначала вызовет функцию ExitFunc . Если вы выполните этот код в режиме отладки, вы увидите, что он пройдет цикл 5 раз. На 5-й -й -й итерации значение переменной i становится равным 5, и код вводится в тело If.
Теперь значение ExitFunc становится i и функция завершается и возвращается к CallExitFunction . Следующая строка — MsgBox «Значение intFunc равно» & intFunc :
Кодирование VBA стало проще
Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!
Узнать больше!
Оператор выхода (VBA) | Microsoft Узнайте
Редактировать
Твиттер LinkedIn Фейсбук Электронное письмо
- Статья
- 2 минуты на чтение
Выход из блока Do…Loop , For…Next , Function , Sub , или Код свойства .
Синтаксис
Выход Do
Выход Для
Exit Function
Exit Property
Exit Sub
Синтаксис оператора Exit имеет следующие формы:
| Описание | |
|---|---|
| Выход Do | Предоставляет способ выхода из инструкции Do…Loop . Его можно использовать только внутри оператора Do…Loop . Exit Do передает управление оператору, следующему за Оператор цикла . При использовании во вложенных операторах Do…Loop Exit Do передает управление циклу, который находится на один уровень вложенности выше цикла, в котором происходит Exit Do .![]() |
| Выход для | Позволяет выйти из цикла For . Его можно использовать только в цикле For…Next или For Each…Next . Exit For передает управление оператору, следующему за Next 9Заявление 0006. При использовании во вложенных циклах For Exit For передает управление циклу, который находится на один уровень вложенности выше цикла, в котором происходит Exit For . |
| Функция выхода | Немедленный выход из процедуры Function , в которой он появился. Выполнение продолжается с оператора, следующего за оператором, вызвавшим функцию . |
| Выход Собственность | Немедленный выход из процедуры Свойство , в которой он появился. Выполнение продолжается с оператора, следующего за оператором, вызвавшим процедуру Property .![]() |
87 * j
Exit Function
End Function

Выполнение продолжается с использованием оператора, который следует за оператором, выполнившим вызов процедуры Sub.
CallExitSub , он сначала вызовет ExitSub . Если вы выполните этот код в режиме отладки, вы увидите, что он пройдет цикл 5 раз. На 5-й -й -й итерации значение переменной i становится равным 5, и код вводится в тело If. Теперь саб ExitSub завершается и возвращается к CallExitSub . Следующая строка MsgBox «Exit Sub» :
Если значение равно 5, мы присваиваем результату функции значение i и выходим из функции:
