ВБА Лоопс - Списак 4 најбоље врсте петљи (са примерима)

Преглед садржаја

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

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

Даћу ову изјаву на самом почетку. „Ако желите мастер у ВБА, морате довршити мастер концепт петљи у ВБА макроима.“

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

Списак 4 најбоље врсте ВБА петљи

  1. За следећу петљу
  2. За сваку петљу
  3. До Вхиле Лооп
  4. До До Лооп

Погледајмо сваку од ових врста детаљно.

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

Петља Фор Нект омогућава нам да пролазимо кроз опсег ћелија и извршимо исти задатак за сваку ћелију наведену у петљи. Овде морамо да кажемо почетни и крајњи број.

Пример

На пример, ако желите да убаците серијске бројеве од 1 до 10, испод је традиционални начин уметања серијских бројева.

Суб СериалНумбер ()

Опсег („А1"). Вредност = 1
опсег („А2"). Вредност = 2
опсег („А3"). Вредност = 3
опсег („А4"). Вредност = 4
опсег („А5"). Вредност = 5
Опсег („А6"). Вредност = 6
опсег („А7"). Вредност = 7
опсег („А8"). Вредност = 8
опсег („А9"). Вредност = 9
опсег („А10"). Вредност = 10

Енд Суб

Изгледа добро, зар не? Али овде је проблем само 10 пута који треба да извршимо овај задатак. Али замислите шта ако желите да убаците 100 или 1000 бројева, можете ли написати код од 100 или 1000 редова. Немогуће је, и ту лепота петље Фор Нект добро дође.

Корак 1: Отворите макро и прогласите променљиву и као целобројно.

Суб Инсерт_Сериал_Нумбер ()

Дим и Ас Интегер

Енд Суб

Корак 2: Сада отворите Фор Лооп . Овде спомените почетак и крај петље помоћу променљиве и.

Корак 3: Сада напишите код који желите да изведете. Морамо да убацимо бројеве од 1 до 10 у ћелије од А1 до А10. Уместо да примените методу опсега, примените методу ћелија.

Тражи број реда јер смо променљиву и у почетку већ прогласили целим бројем. Његова вредност је 1. Дакле, спомените да ми се свиђа ваш број реда и 1 као број колоне.

Сада је вредност тренутне вредности ћелија треба да буде један, уместо да поменути број један позовете И као вредност. Будући да се свака временска петља покреће , вредност ће ми се повећавати за 1.

Сада притисните тастер Ф8 да бисте закорачили један по један ред. Притисните Ф8 док не досегне петљу Фор.

Ова жута боја је показатељ да ће изабрани ред кода бити покренут. Поставите курсор на И и он ће приказати вредност као нулу.

Сада притисните још једном тастер Ф8 и поставите курсор на и & сада је вредност 1.

Дакле, вредности и у свуда су сада једнаке 1. „ Ћелије (И, 1) .валуе = И“ значи Ћелије (1, 1) .валуе = 1.

Притисните тастер Ф8 и погледајте вредност у ћелији А1. Морате видети 1 у ћелији А1.

Сада, ако притиснете тастер Ф8, она ће се вратити у За петљу још једном јер је крајњи варијабле сам је 10. Овај пут сам вредност ће бити 2.

Јер ће се следећа петља покретати 10 пута и уметати серијске бројеве од 1 до 10.

Тип 2 - за сваку петљу

За Свака петља у ВБА служи за прегледавање колекције објеката. За следећу петљу петља кроз ћелије и извршава задатак, а за сваку петљу петља кроз објекте као што су радни листови, графикони, радне свеске, облици.

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

Пример # 1

Ако желите сакрити све радне листове осим листа на којем радите, како ћете то учинити? Ако у радној свесци имате 20 листова, то је дуготрајан процес. Али помоћу ФОР ЕАЦХ петље можемо извршити овај задатак.

Имам 5 листова и желим да сакријем све листове осим листа „Главни“ испод кода који би то учинио уместо мене.

Суб То_Хиде_Алл_Схеет ()

Дим Вс Ас Ворксхеет

За свакога у АцтивеВоркбоок.Ворксхеетс

Ако је Вс.Наме „Маин“, онда је
Вс.Висибле = клСхеетВериХидден
Енд Иф

Нект Вс

Енд Суб

Пример # 2

Ако желите да откријете све скривене листове, тада ће посао обавити доњи код.

Суб То_УнХиде_Специфиц_Схеет ()

Дим Вс Ас Ворксхеет

За свакога у АцтивеВоркбоок.Ворксхеетс

Вс.Висибле = клСхеетВисибле

Нект Вс

Енд Суб

Тип # 3 - До Вхиле Лооп

Петља До вхиле изводи задатак док је дати услов ТРУЕ, а када услов постане ФАЛСЕ, престаће да се понавља. За разлику од друге две петље, До Вхиле тестира стање на крају петље, а не на почетку.

Показаћу вам пример уметања серијских бројева помоћу петље До Вхиле.

Суб До_Вхиле_Екампле ()

Дим и Ас Интегер

и = 1
уради док је и <11
ћелија (и, 1) .Вредност = и
и = и + 1
петља

Енд Суб

Горња петља ће се покретати док је и мање од 11 и наставља да убацује серијске бројеве. Оног тренутка када постанем већи од 11 година, престаће да се петља.

Тип # 4 - До До Лооп

За разлику од петље До Вхиле, петља До До се не покреће док је услов ТРУЕ; него се петља док услов није ФАЛСЕ. На пример, погледајте доњи код.

Суб До_Унтил_Екампле ()

Дим и Ас Интегер

и = 1
До док и = 11
ћелија (и, 1). Вредност = и
и = и + 1
петља

Енд Суб

Једина разлика између петље До Вхиле & До До је оператер који смо навели. У До, Иако смо споменули покретање петље док је и мање од (<), 11, али у циклусу до, споменули смо покретање петље док и није једнако (=) до 11.

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

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

Занимљиви Чланци...