Желите да аутоматизујете задатке који се понављају у Екцел-у користећи ВБА? Научите како да користите петљу За сваки да бисте ефикасно манипулисали подацима у својим табелама.

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

Док мање-више све ВБА петље добро функционишу са објектима, петља „за сваки“ је једна од најбољих опција за рад са колекцијама објеката. Ако сте тек почели да користите Екцел ВБА и желите да савладате за сваку петљу, можете брзо да научите из неких од ових примера. Ево свега што треба да знате о овој кључној петљи.

За сваку синтаксу петље

Синтакса за сваку петљу је прилично слична уобичајеној фор петљи у Екцел ВБА. Ево синтаксе:

За сваку променљиву_наме у колекцији_објеката

[изјава]

[изјава]

[изјава]

Следеће име_променљиве

Петља почиње кључном речи „за сваки“; можете користити било које име променљиве, након чега следи колекција објеката. Објект у за сваку петљу могу бити ћелије, опсези, листови, па чак и радне свеске. Таква је лепота ове петље; даје вам флексибилност за рад са различитим Екцел колекцијама.

Петља се креће кроз сваку вредност колекције и чува референцу у дефинисаном имену променљиве. Након извршења, ВБА извршава ускладиштене изразе унутар петље и прелази на следећи објекат у колекцији ( следећи кључна реч је овде од помоћи). Хајде да разумемо структуру кода са основним примером.

Како користити за сваку петљу у Екцел ВБА

Претпоставимо да желите да одштампате број у ћелијама А1 до А10. Најбољи приступ је да користите за сваку петљу са функцијом опсега и пустите код да уради све што је потребно. Ево како можете да урадите овај једноставан задатак:

  1. Отворите ВБА уређивач кода притиском на Алт + Ф11.
  2. Уметните модул кликом на Модул опција у оквиру Уметните таб.
  3. Креирајте подрутину користећи команду суб() у прозору модула уређивача кода. Уверите се да сте доделили смислено име подрутини. За овај пример можете користити име фор_еацх_лооп.

Сада када су основе на путу, време је да почнете да пишете код. У оквиру потпрограма откуцајте следеће команде:

Дим целл као домет

За сваку ћелију ин листови("лист 1").Домет(„А1:А10“)

целл.валуе = 10

Следећа ћелија

Када се код изврши, ц променљива ће сачувати вредност А1. Затим, док прелази на наредбу унутар петље, процењује команду и уноси вредност 10 у дефинисану ћелију, тј. ћелију А1.

Коначно, како се помера на следећу кључну реч, прелази на следећу вредност, тј. ћелију А2. Петља траје док не дође до ћелије А10. Ово је коначни резултат:

Коришћење петље са објектима: ћелије, листови и радне свеске

Екцел има три главна типа објеката са којима редовно радите. То су ћелије, листови и радне свеске. Ево како можете да користите петљу са сва три типа објеката.

Заједнички рад са ћелијама и петљама

Претпоставимо да желите да додате вредност и неке услове форматирања опсегу ћелија у Схеет1. Као први корак, потребно је да дефинишете услове унутар петље, након чега следе команде за форматирање.

Унесите следећи код у оквиру потпрограма.

Суб фор_еацх_лооп()

Дим ц Као Домет

За сваки ц у листовима ("лист 1").Домет(„А1:А10“)

Витх ц

.Вредност = 10

.Фонт. Боја = вбРед

.Фонт. Болд = Истина

.Фонт. Прецртано = Истина

КрајВитх

Следећи ц

Крај Суб

Тхе са функција је корисна када се обавља више функција са једним одређеним објектом. Пошто желите да извршите низ задатака са променљивом ц, можете их све комбиновати помоћу функције витх..енд витх.

Петља изједначава вредност ц са сваком вредношћу ћелије и уноси вредност као 10. Поред тога, мења боју ћелије у црвену, подебљава вредност и прецртава је. Када заврши све кораке, прелази на следећу дефинисану вредност у опсегу.

Коришћење петље за контролу листова

Слично као у горњем примеру, можете користити за сваку петљу за контролу листова. Шта кажете на промену имена Схеет1 у Схеет3 користећи ВБА?

Можете да користите следећи код да бисте преименовали постојећи радни лист у Екцелу користећи ВБА:

Суб фор_еацх_лооп_схеетс()

ЗаСвакисхтИнТхисВоркбоок.Схеетс

Ако схт. Име = "лист 1" Онда

схт. Име = "Схеет3"

КрајАко

Следећи схт

Крај Суб

Код петља кроз сваки лист у радној свесци и проверава назив сваког листа. Ако наиђе на име Схеет1, мења га у Схеет3. Она напредује кроз преостале листове, ако их има, унутар радне свеске. Када извршење кода стигне до последњег листа, оно излази из петље и потпрограма.

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

Пребацивање кроз радне свеске помоћу петље

Коначно, можете користити за сваку петљу да бисте прелазили кроз различите радне свеске и обављали одређене задатке. Хајде да демонстрирамо ову функцију на примеру.

Можете користити ВБА команде да додате три нове радне свеске и затворите све отворене заједно. Ево како то можете да урадите:

Суб лооп_вркбоок()

Дим вркбоок као радна свеска

Радне свеске.Додати

Радне свеске.Додати

Радне свеске.Додати

За сваку радну свеску у радним свескама

радна књига.Близу

Следећа радна свеска

Крај Суб

Горњи код ће такође затворити вашу макро радну свеску; уверите се да сте сачували своје кодове пре него што покренете овај код.

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

Коришћење угнежђене изјаве ИФ са петљом

Као у горњем примеру, можете користити ИФ наредбу унутар петље да проверите специфичне услове. Хајде да променимо боју позадине ћелије на основу вредности ћелије.

Постоји неколико насумичних бројева у ћелијама А1:А20. Можете написати петљу за кретање кроз сваку дату ћелију у опсегу; ако је вредност ћелије мања од 10, боја ћелије би требало да се промени у црвену. Ако вредност ћелије прелази 10, требало би да постане зелена. У ту сврху користите следећи код:

Суб лооп_в_иф()

Дим ц Као Домет

За сваки ц у листовима ("Схеет4").Домет(„А1:А20“)

Акоц.Валуе < 10 Онда

ц. Ентеријер. Индекс боја = 3

Елсе: ц. Ентеријер. Индекс боја = 4

КрајАко

Следећи ц

Крај Суб

Овако изгледа излаз:

Коришћење петљи у Екцел ВБА

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