Екцел ВБА Бреак Фор Лооп
У ВБА Бреак Фор Лооп познат је и као излаз за петљу, свака петља у било којој процедури добила је неки сет упутстава или критеријума како би могла да тече временски, али врло је често да нека петља уђе у бесконачну петљу и тако оштети код у таквим сценаријима потребан нам је прекид или излазак из петље да би изашли из одређених ситуација.
Рецимо да смо наредили петљи да се изврши 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 Лооп Енд Суб
Ово ће приказати доњу поруку.

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