Екцел ВБА петље

Петље се могу сматрати најбољом функционалном компонентом ВБА и могу се сматрати срцем макронаредбе. Обично вам помажу да смањите број линија у вашем коду и обавите посао у неколико минута што човеку може да траје сатима.

У свакодневном животу програмер долази са таквим случајевима када треба поново и поново покретати исти скуп кода. Зове се петља. Очигледно је да ће сваки пут када се покреће исти код добити исти резултат са неком фракцијском променом променљиве. Лоопинг има велики низ предности, али најважнија од свега је аутоматизација. Помаже у аутоматизацији ствари.

Ако раније нисте користили ВБА скрипту, једноставно можете отворити Екцелов радни свезак и притиснути Алт + Ф11 . Отвориће ВБА пројекат.

Идемо дубље унутра.

Претпоставимо да смо желели да одштампамо 1 до 10 бројева на једном кадру. То можемо учинити са следећим кодом.

Шифра:

 Под петља1 () Дебуг.Принт 1 Дебуг.Принт 2 Дебуг.Принт 3 Дебуг.Принт 4 Дебуг.Принт 5 Дебуг.Принт 6 Дебуг.Принт 7 Дебуг.Принт 8 Дебуг.Принт 9 Дебуг.Принт 10 Енд Суб 

Ако брзо можете да прођете преко кода, додао сам Дебуг.Принт један за другим да бисте одштампали бројеве од 1 до 10. Након покретања кода можемо видети излаз у непосредном прозору. Да бисте отворили тренутни прозор, притисните Цтрл + Г било где у Екцелу.

Покрените код помоћу тастера Ф5 или ручно као што је приказано на слици доле. Па да проверимо излаз за овај код.

Типови ВБА петљи у Екцелу

Будући да сте програмер, никада нећете бити жељни писања понављајућих редака који ће дати исти резултат. Желели бисте да је аутоматизујете. Отуда ћемо видети разне Екцел ВБА петље и како их користити помоћу неких примера.

Тип # 1 - ВБА за следећу петљу

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

код:

 Потпуна петља1 () За и = 1 до 10 ћелија (и, 1) .Валуе = и Следеће и Крај Суб 

Овај код даје потпуно исти излаз као и претходни. Међутим, најважнија ствар у овом коду је смањење броја линија. Смањили смо 12-линијски код на само код са 5 редака.

У овом коду, лооп1 је име макронаредбе. Петља фор почиње од и = 1, штампа вредност и (тј. 1) испод екцел ћелије, а затим Нект, поново иде на почетак петље фор и чини да и = 2 исписује вредност и (тј. 2) у следећој ћелији и тако даље све док код не достигне задњу вредност тј. 10. Чим код достигне задњу вредност и (10), код се сам прекида због недоступности било које целе вредности изнад 10.

Покрените код помоћу тастера Ф5 или ручно. Дакле, можете видети излаз као испод.

Тип # 2 - ВБА за петљу са кораком напред

Као што сте видели у претходном примеру петље, имао сам повећање у 1 кораку. Подразумевано се вредност корака сматра 1 у ВБА. Међутим, да ли је могуће поставити сопствени корак? Претпоставимо да желите да видите само парне бројеве између 1 и 20. Како се то може учинити?

Као што општа математика сугерише, бројеви који су на удаљености 2 један од другог (почевши од првог парног броја 2) сматрају се парним бројевима, зар не?

Применићемо исту логику. Погледајте доњи код за референцу.

Шифра:

 Суб ФорвардСтеп () За и = 2 до 20 Корак 2 ћелије (и, 1) .Валуе = и Следећи и Крај Суб 

За вредности које почињу од 2, ова петља омогућава штампање 2, 4, 6, 8 … 20 у наредним ћелијама екцел. Корак 2 је изричито дао, тако да ће почевши од броја 2 код прећи на следећи број са кораком 2 (тј. Штампаће се 4) и тако даље. Овај процес ће се наставити све док се 20 не појави у ћелији. Чим се 20 појави у ћелији, петља ће се аутоматски прекинути.

Покрените код помоћу тастера Ф5 или ручно. Дакле, можете видети излаз као испод.

Упишите број 3 - ВБА за петљу са кораком уназад

На исти начин као и за петљу са кораком напред, можемо користити и за петљу са кораком уназад. На пример, шта ако поставимо корак уназад као -2 и покренемо петљу за вредности од 20 до 2?

Видећемо како то функционише.

код:

 Суб БацквардСтеп () За и = 20 до 2 корак -2 Дебуг.Принтајте и Нект и Енд Суб 

Након покретања кода можемо видети излаз у тренутном прозору. Да бисте отворили тренутни прозор, притисните Цтрл + Г било где у Екцелу.

Како смо дали почетну тачку петље као 20, а крајњу тачку као 2 са кораком -2, петља почиње од 20 и у кораку -2 прелази на следећи број који је -18 и тако даље. Чим петља достигне вредност 2, аутоматски се прекида и последња вредност ће се штампати као 2.

Тип # 4 - ВБА гнездо за петљу

Такође можемо да угнијезди форфор петљу. Међутим, не предлаже се уношење кода исте петље више од три пута у код (То се може сматрати грешком у логици).

Молимо погледајте доњи код за угнијежђену петљу.

Шифра:

 Суб НестедФор () За и = 1 до 10 За ј = 1 до 2 ћелије (и, ј) .Валуе = и * ј Следећи ј Следећи и Крај Суб 

У овом примеру, при и = 1 и ј = 1, макро поставља вредност и * ј (1 * 1) у пресек реда и = 1 и ступца ј = 1 (тј. Ћелија А1) и иде за следећу вредност ј (2) задржавање и = 1. У сјециште реда и = 1 и ступца ј = 2 (тј. ћелија Б1), макро уноси вриједност И * ј (1 * 2). Петља игнорише следећу вредност ј јер ј варира само од 1 до 2 и прелази на следећу вредност и.

За и = 2 и ј = 1, макро уноси вредност и * ј (2 * 1) у пресек другог реда и првог ступа (тј. Ћелије А2) и наставља даље. Све до опсега и и ј.

Покрените код помоћу тастера Ф5 или ручно као што је приказано на слици доле. Дакле, можете видети излаз као испод.

Тип 5 - ВБА ради док петља

До вхиле петља је једна од најзанимљивијих петљи у ВБА. Омогућава вам да проверите стање и напишете излаз (ДО) када се испуни одређени услов или скуп услова (или ако је услов / ова истинит / истинит).

Погледајте код испод:

Шифра:

 Под до_тимелооп () Дим и као цео број и = 1 У току док је и <= 10 ћелија (и, 1) .Валуе = и * ии = и + 1 Потка крај петље 

Ова петља ради на следећи начин:

За вредности и од 1 (првобитно и = 1) до 10, израчунава, и * и (тј. Вредност квадрата за сваку целинску вредност и) и уноси је испод ћелије 1 до 10. Излаз није ништа друго него квадратне вредности целих бројева 1 до 10. Молимо погледајте ближи поглед на Лооп под овим кодом. Обавезно га додајте, у супротном систем ће покренути грешку.

Покрените код помоћу тастера Ф5 или ручно. Дакле, можете видети излаз као испод.

Ово су неки од примера ВБА петље за које сам покушао да се побринем у овом чланку. Надам се да ће бити довољно прецизан да очисти неке концепте.

Ствари које треба запамтити

  • Док користите за петљу корак уназад, осигурајте да ваш почетни број мора бити већи од завршног броја и обрнуто.
  • Под ставком „До док петља“ обавезно користите Лооп за затварање посла, пре него што завршите читав ВБА код. У супротном, систем баца грешку преводиоца са поруком о грешци „Без петље“.

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

Препоручени чланци

Ово је водич за Екцел ВБА петље. Овдје смо разговарали о Врсте Екцел ВБА петљи и како их користити уз неколико практичних примјера и преузети екцел предложак. Можете и да прођете кроз друге наше предложене чланке -

  1. ВБА функција у Екцелу
  2. ВБА ВЛООКУП функција
  3. Пречице за тастатуру у Екцелу
  4. Екцел Перцентил Формула

Категорија: