ВБА Бреак Фор Лооп | Како изаћи из петље у програму Екцел ВБА?

Екцел ВБА Бреак Фор Лооп

У ВБА Бреак Фор Лооп је познат и као излаз за петљу, свака петља у било којој процедури добила је неки сет упутстава или критеријума како би могла да тече временски, али врло је често да нека петља уђе у бесконачну петљу, тако да квари код у таквим сценаријима потребна вам је пауза или излаз за петљу да би изашао из одређених ситуација.

Рецимо да смо наредили петљи да се изврши 10 пута и на основу услова да ли је вредност ћелије или било који други понуђени критеријум успешан, онда мора да напусти екцел петљу пре него што попуни квоту пуне петље од 10. У овом чланку , показаћемо вам како да изађете из петље на основу датих критеријума.

Како прекинути / изаћи из петље у ВБА?

Можете да преузмете овај ВБА прелом за петљу Екцел предлошка овде - ВБА прекид за петљу Екцел предлошка

# 1 - Прекид за следећу петљу

ВБА Фор Нект Лооп се користи за петљање по ћелијама и извођење одређеног скупа задатака. За пример погледајте доле наведени ВБА код.

Шифра:

 Суб Екит_Лооп () Дим К Кратко за К = 1 до 10 ћелија (К, 1) .Вредност = К Следећа К Крај Суб 

Ово ће уметнути серијске бројеве из ћелије А1 до А10.

Ово је очигледна ствар са Фор Нект Лооп.

Сада желим да прекинем петљу када било која вредност пронађена у првих 10 ћелија, за то сам унела неку текстуалну вредност у ћелију А8.

Сада желим ово упутити у код рекавши „ако ћелија петље има одређену вредност мора да изађе из петље пре унапред одређеног ограничења“.

Шифра:

 Суб Екит_Лооп () Дим К Кратко за К = 1 до 10 ако ћелије (К, 1) .Валуе = "" Затим ћелије (К, 1) .Валуе = К Елсе Екит Фор Енд Иф Нект К Енд Суб 

Погледајте ове редове кода:

Ако су ћелије (К, 1) .Вредност = “” Тада

Ћелије (К, 1) .Вредност = К

Елсе

Излаз за

Крај ако

Каже да Ако је ћелија (К, 1) .Валуе = “” петља ћелије једнака ничему, наставите петљу уметања серијских бројева од 1 до 10.

Последњи део петље каже:

Елсе

Излаз за

Ако горњи услов није ИСТИНА, онда је „Екит Фор“ петља.

Сада покрените код који ће уметати серијске бројеве до ћелије А7.

Горњи код је одмах изашао из петље не говорећи ништа, како знамо да је изашао из петље.

Да бисмо уклонили ову двосмисленост, морамо да ставимо једно једноставно ВБА поље за поруке као доле.

Шифра:

 Суб Екит_Лооп () Дим К Колико дуго траје К = 1 до 10 ако ћелије (К, 1) .Валуе = "" Затим ћелије (К, 1) .Валуе = К Елсе МсгБок "Добили смо непразну ћелију, у ћелији" & Ћелије (К, 1). Адреса & вбНевЛине & "Излазимо из петље" Излаз за крај ако је следећи К крај Суб 

Када се петља кроз ћелију ако се пронађе нека непразна ћелија, приказаће се порука која каже: „Добили смо непразну ћелију, у ћелији А8. Излазимо из петље ”.

Ово ће обавестити корисника о излазу из петље са адресом ћелије. Ако је било која вредност унесена грешком, можемо да проверимо адресу ћелије која се враћа у поље за поруку.

# 2 - Бреак До До Лооп

Као што смо изашли из Фор Нект Лооп, слично томе можемо изаћи и из петље „До До“. На пример, погледајте доњи код.

Шифра:

 Суб Екит_ДоУнтил_Лооп () Дим К Све док К = 1 До док К = 11 ћелија (К, 1) .Вредност = К К = К + 1 Лооп Енд Суб 

Овај код такође обавља задатак уметања серијских бројева. На пример, ако желимо да изађемо из петље када вредност променљиве „к“ постане 6, морамо да унесемо критеријуме као АКО је к = 6, а затим изађемо из петље.

Шифра:

 Суб Екит_ДоУнтил_Лооп () Дим К Докле К = 1 До док К = 11 Ако је К <6 Тада ћелије (К, 1) .Валуе = К Елсе Екит До Енд Иф К = К + 1 Лооп Енд Суб 

Ово ће покретати петљу док вредност променљиве не постане 6, а након тога ће изаћи из петље. Ако желите приказати поруку кориснику, можете додати и оквир за поруку.

Шифра:

 Суб Екит_ДоУнтил_Лооп () Дим К Дуго К = 1 До док К = 11 Ако К 5 "Излаз До Крај Ако је К = К + 1 Лооп Енд Суб 

Ово ће приказати доњу поруку.

Као и овај на основу датих критеријума, можемо изаћи из петље ако су критеријуми ИСТИНИТИ или можемо наставити петљу.