Ако пишете ВБА програм и желите да извршите исти задатак више пута, то можете учинити помоћу ВБА за петље. ВБА је секвенцијални програмски језик. Сваки ред кода се извршава одозго према доле све док више нема редова кода за читање. Ако желите да се вратите и извршите задатак, морате да примените помоћу макро кода. Добијате резултате помоћу петље.
Фор Лооп у ВБА је један од најчешћих типова петље. Петља Фор има два облика: За следећу и За сваку у следећој. Фор петља се обично користи за секвенцијално кретање кроз листу ставки или бројева. Да бисмо завршили Фор петљу у било којој датој тачки, можемо да користимо екит наредбу. Јер петља ће се вртети све док не испуни крајњи услов. Када се испуни крајњи услов, ток програмирања ће се наставити надоле, у свом природном смеру.
Петља Фор… Нект има следећу синтаксу: Фор цоунтер = старт_цоунтер То енд_цоунтер 'Учините нешто овде (ваш код) Следећи бројач
Ми заправо стварамо петљу која користи променљиву цоунтер као „чувар времена“ петље. Поставили смо га на вредност једнаку старт_цоунтер на почетку петље, а затим је повећавати за 1 током сваке петље док не испуни крајњи услов. Петља ће се извршавати до тренутка када вредност цоунтер постаје једнак енд_цоунтер. Петља се последњи пут извршава када се обе горње вредности подударају и тада се петља зауставља.
Све горе наведено може збунити неке људе, па хајде да се припремимо и почнемо учити Фор Лооп у екцелу с неколико примјера.
- Направите нову Екцел књигу, а затим је сачувајте са екстензијом .клсм
- Да бисте покренули екран за уређивање Висуал Басиц -а, користите АЛТ + Ф11
- Уметните нови модул
- Копирајте доњи код у стандардни модул ВБ
Петља 1 (Приказ броја са поруком за поруке)
Под петља1 () Затамни почетни број као цео број Затамни завршни број као цео број завршни број = 5 за почетни број = 1 до крајњег броја МсгБок почетни број & "је" & "Ваш стартни број" следећи стартни број завршни подброј
Објашњење кода:
- ВБА код мора да додели вредност СтартНумбер -у, где су ЕндНумбер променљиве које су декларисане као цели бројеви као почетна тачка за вашу петљу
- Ове вредности могу бити било који број и имамо ЕндНумбер као 5
- СтартНумбер почиње 1
- За СтартНумбер = 1 За ЕндНумбер значи да ће код почети од 1 (СтартНумбер) до 5 (ЕндНумбер)
- МсгБок СтартНумбер & "ис" & "Иоур СтартНумбер" ће приказати следеће поље за поруку
Петља2 (попуњавање вредности)
Суб Лооп2 () 'Попуњава ћелије А1: А56 вредностима Кс петљом' --- Коментар 'Повећај вредност Кс за 1 у свакој петљи' --- Коментирај Дим Кс као цео број за Кс = 1 до 56 опсега ("А "& Кс) .Вредност = Кс Следећа Кс Крај Суб
Објашњење кода:
- Доделили смо Кс као цео број
- За Кс = 1 до 56; ово ће почети са 1 и наставити до 56 са повећањем од 1 сваки пут
- Опсег ("А" & Кс). Вредност = Кс; ова линија ће сачувати вредност Кс и прећи ће у опсег А1 до А56
Петља 3 (Попуните ћелије бојом позадине)
Суб Лооп3 () 'Попуњава ћелије Б1: Б56 са 56 боја позадине' --- Коментар Дим Кс као цео број за распон од Кс = 1 до 56 ("Б" & Кс). Одаберите са одабиром. Унутрашњост. БојаИндекс = Кс. Узорак = клСолид Енд Витх Нект Кс Енд Суб
Објашњење кода:
- Доделили смо Кс као цео број
- За Кс = 1 до 56 почет ће са 1 и наставити до 56 са повећањем од 1 сваки пут
- Распон ("Б" и Кс). Одаберите; ова линија ће сачувати вредност Кс и изабрати ћелију Б1 до Б56
- Следећа 4 реда, тј. Селецтион.Интериор ће изабрати индекс боје ентеријера и узети вредност из Кс тог индекса боја тако да 1 припада црној боји; 2 припада белој боји; 3 за црвено и тако даље
Петља 4 (Испуните вредности са повећањем од 2)
Подразумевано је вредност корака 1, али се може поставити на број већи од 1.
Суб Лооп4 () 'Попуњава сваку другу ћелију од Ц1: Ц50 вредностима Кс' --- Коментар Дим Кс као цео број за Кс = 1 до 50 Опсег 2. корака ("Ц" & Кс). Вредност = Кс Следећи Кс Крај Суб
Објашњење кода:
- Доделили смо Кс као цео број
- За Кс = 1 до 50 Корак 2; ово ће почети са 1 у Кс до 50 са повећањем од 2 сваки пут
- Опсег ("Ц" & Кс). Вредност = Кс; ова линија ће сачувати вредност Кс и прећи ће у опсег Ц1 до Ц50
Петља 5 (ВБА за петљу обрнуто са упутством СТЕП)
Није неопходно да се бројач у Фор петљи помери само са ниских на веће вредности; Уместо тога, петља Фор може да се креће уназад, тј. од високих до нижих вредности.
Иако је вриједност Степ према заданим поставкама 1, она се може поставити на број обрнутим редослиједом.
Суб Лооп5 () 'Попуњава ћелије из Д1: Д50 вредностима Кс' --- Коментар 'У овом случају Кс се смањује за 1' --- Коментар Дим Кс као цео број, ред као цео број Ред = 1 За Кс = 50 до 0 Корак -1 Распон ("Д" и ред). Вредност = Кс ред = ред + 1 следећи Кс Крај под
Објашњење кода:
- Доделили смо Кс & Ров као цео број
- Ред садржи вредност 1
- За Кс = 50 до 0 Корак -1; ово ће почети од 50 са смањењем за 1 у Кс до 0
- Опсег ("Д" & Ред) .Вредност = Кс; ова линија ће сачувати вредност Кс и прећи ће у опсег Д1 до Д50
Петља 6 (Попуњава сваку другу ћелију у рикверц са СТЕП-2)
У горњем примеру Фор петље, можемо користити Степ анд ордер да видимо да ли Фор петља ради у смеру напред или назад.
Суб Лооп6 () 'Попуњава сваку другу ћелију из Е1: Е100 вредностима Кс' --- Коментар 'У овом случају Кс се смањује за 2' --- Коментар Дим Кс Као цео број, ред као цео број Ред = 1 За Кс = 100 До 0 Корак -2 Распон ("Е" и ред). Вредност = Кс ред = ред + 2 следећа Кс Крај под
Објашњење кода:
- Доделили смо Кс & Ров као цео број
- Ред садржи вредност 1
- За Кс = 100 до 0 Корак -2; ово ће почети од 100 са смањењем за 2 у Кс до 0
- Опсег ("Е" & Ред) .Вредност = Кс; ова линија ће сачувати вредност Кс и прећи ће у опсег Е1 до Е100
Петља 7 (За петљу са ИФ условима: Пуни ћелије почевши од одређене ћелије)
Ово ће испунити ћелије из ћелије Ф11 са вредношћу 11 док Кс не испуни услов ИФ
Суб Лооп7 () 'Почиње попуњавање ћелија Ф11: Ф100 са вредностима Кс' --- Коментар 'Ово ће изаћи из петље након 50' --- Коментар Дим Кс као цео број за опсег Кс = 11 до 100 ("Ф" & Кс) .Вредност = Кс Ако је Кс = 50 онда МсгБок ("Бие Бие") Излаз за крај ако је следећи Кс крај суб
Објашњење кода:
- Доделили смо Кс као цео број
- За Кс = 11 до 100; почеће од 11 са повећањем за 1 у Кс све док услов не испуни
- Опсег ("Ф" и Кс). Вредност = Кс; ова линија ће сачувати вредност Кс и прећи ће у опсег Ф11 док услов не испуни
- Након уноса вредности 50 у ћелију Ф50, приказаће се следеће поље за поруку
Закључак: Са горе наведених 7 примера, можемо применити Фор петљу у нашем редовном или било ком делу за аутоматизацију.
Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.
Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште