Във VBA можете да излезете от под -функция или функция, като използвате Изход от Sub или Излезте от функцията команди.
1 | Изход от Sub |
1 | Излезте от функцията |
Когато изпълнението на кода дойде Изход от Sub или Излезте от функцията, той ще излезе от под или функция и ще продължи с всяко друго изпълнение на код.
Ако искате да научите как да излезете от Sub при грешка, щракнете върху тази връзка: VBA On Error Exit Sub
Ако искате да научите как да прекратите изпълнението на цял код, щракнете върху тази връзка: VBA End
Излезте от Sub в VBA
Ще видите на примера какво се случва, когато използваме Изход от Sub команда в Sub. Създадохме Sub ExitSub, който има Изход от Sub команда вътре. ПодводникътCallExitSub нарича това под. Ето кода:
123456789101112131415161718 | Частен под ExitSub ()Dim i As IntegerЗа i = 1 до 10Ако i = 5, тогаваИзход от SubMsgBox "Стойността на i е" & iКрай АкоСледва iEnd SubЧастно подвикване ExitSub ()Обадете се на ExitSubMsgBox "Изход от под"End Sub |
В ExitSub, първо въвеждаме For Loop, ако стойността на i е по -малка от 10:
123 | За i = 1 до 10Следва i |
След това проверяваме дали стойността на i е равна на 5, като използваме командата If. Ако стойността е 5, искаме да излезем от Sub и да върнем полето със съобщение със стойността i:
1234 | Ако i = 5, тогаваИзход от SubMsgBox "Стойността на i е" & iКрай Ако |
Ако условието не е изпълнено, следното изявление увеличава i с 1 и отново влиза в цикъла For:
1 | Следва i |
В CallExitSub, първо наричаме Sub ExitSub:
1 | Обадете се на ExitSub |
След това връщаме полето за съобщения:
1 | MsgBox "Изход от под" |
Ако стартирате CallExitSub, първо ще извика ExitSub. Ако изпълните този код в режим на отстраняване на грешки, ще видите, че той ще премине през цикъла 5 пъти. В 5th итерация, стойността на променливата i става 5 и кодът влиза в тялото If. Сега Sub ExitSub се излиза и се връща в CallExitSub. Следващият ред е MsgBox „Изход от Sub“:
Както можете да видите, ExitSub се излиза веднага след това Изход от Sub команда, така че MsgBox „Стойността на i е“ & i никога няма да бъде изпълнено.
Излезте от функция във VBA
Излизането от функция във VBA е подобно на излизането от Sub, просто командата е Излезте от функцията. В примера създадохме ExitFunc който връща цяло число. Подводникът CallExitFunction извиква тази функция. Ето кода:
1234567891011121314151617181920 | Частна функция ExitFunc () като цяло числоDim i As IntegerЗа i = 1 до 10Ако i = 5, тогаваExitFunc = iИзлезте от функциятаКрай АкоСледва iКрайна функцияPrivate Sub CallExitFunction ()Dim intFunc като цяло числоintFunc = ExitFunction ()MsgBox "Стойността на intFunc е" & intFuncEnd Sub |
В ExitFunc, първо въвеждаме For Loop, ако стойността на i е по -малка от 10:
123 | За i = 1 до 10Следва i |
След това проверяваме дали стойността на i е равна на 5, като използваме командата If. Ако стойността е 5, присвояваме стойността на i на резултата от функцията и излизаме от функцията:
1234 | Ако i = 5, тогаваExitFunc = iИзлезте от функциятаКрай Ако |
Ако условието не е изпълнено, следното изявление увеличава i с 1 и отново влиза в цикъла For:
1 | Следва i |
В CallExitFunction, първо извикваме функцията ExitFunc: За да направим това, трябва да декларираме променливата intFunc въведете цяло число и задайте резултата от ExitFunc функция към него:
123 | Dim intFunc като цяло числоintFunc = ExitFunction () |
След това връщаме полето Съобщение със стойността на intFunc:
1 | MsgBox "Стойността на intFunc е" & intFunc |
Ако стартирате CallExitFunction, първо ще извика функцията ExitFunc. Ако изпълните този код в режим на отстраняване на грешки, ще видите, че той ще премине през цикъла 5 пъти. В 5th итерация, стойността на променливата i става 5 и кодът влиза в тялото If. Сега стойността на ExitFunc става i и функцията се излиза и се връща в CallExitFunction. Следващият ред е MsgBox „Стойността на intFunc е“ & intFunc: