ВБА До Лоопс - Како се користе петље Екцел ВБА До?

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

Екцел ВБА До Лооп

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

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

Како се користи ВБА До Лооп?

Пример # 1 - Услов на крају петље

Видели смо тест стања на почетку петље. У ранијем коду видели смо пример уметања серијских бројева и код је био такав.

Шифра:

Суб До_Вхиле_Лооп_Екампле1 () Дим к Докле к = 1 До Вхиле к <= 10 ћелија (к, 1) .Вредност = кк = к + 1 Лооп Енд Суб

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

Овај код ће уметнути серијске бројеве од 1 до 10.

Али такође можемо тестирати стање на крају петље. Треба да користимо реч „вхиле“ и тест стања на крају иза речи Лооп.

Једина промена овде је примена теста на крају, као што је приказано доле.

Шифра:

Суб До_Вхиле_Лооп_Екампле1 () Дим к Ас Лонг к = 1 До Целлс (к, 1) .Валуе = кк = к + 1 Лооп Вхиле к <= 10 Енд Суб

Овако, можемо да тестирамо и стање на крају изјаве петље.

Напомена: Код ће се покренути, а затим тестира услов да се још једном врати у петљу или не. То значи да ће се прво покренути, а затим покушати касније.

Пример # 2 - Збрајање помоћу функције „Док се петља“

Претпоставимо да имате податке о продаји и трошковима у свом екцел листу. Испод је скуп лажних података које сам креирао за прорачун.

Сада морамо добити вредност добити у колони Ц. Већ сам створио код који ће обавити посао за мене.

Шифра:

Суб До_Вхиле_Лооп_Екампле2 () Дим к Ас Лонг Дим ЛР Ас Лонг к = 2 ЛР = Целлс (Ровс.Цоунт, 1). Енд (клУп) .Рад До Вхиле к <= ЛР Целлс (к, 3) .Валуе = Целлс (к , 1) + Ћелије (к, 2) к = к + 1 Лооп Енд Суб
ЛР = ћелије (редови.број, 1). Завршетак (клУп). Ред

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

к = 2

Желимо да се прорачун врши од друге ћелије па надаље. Дакле, почетна вредност к је 2.

Урадити Док је к <= ЛР

Као што сам рекао, ЛР ће пронаћи последњи коришћени ред у првој колони. То значи да ће се петља покретати док је к <= вредност ЛР. У овом случају имам 10 редова, па је ЛР = 10.

Петља ће се изводити док вредност к не достигне 10. Када количина пређе 10 петљи, зауставиће се.

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

Пример # 3 - Изјава о излазу у До Вхиле Лооп

Такође можемо изаћи из петље док је услов још увек ТРУЕ. На пример, узмите овде и горње податке.

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

Шифра:

Суб До_Вхиле_Лооп_Екампле3 () Дим к До Лонг Дим ЛР Ас Лонг к = 2 ЛР = Ћелије (Ровс.Цоунт, 1). Енд (клУп) .Рад До Вхиле к 6 Затим изађите из До Целлс (к, 3) .Валуе = Целлс ( к, 1) + ћелије (к, 2) к = к + 1 петља крај суб
„Ако је к> 6, онда изађите“

Ова линија кода започиње излазни процес. Петља ће се изводити све док вредност к не достигне 6. Оног тренутка када пређе 6, Ако ће услов извршити код, „Екит До“.

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

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

  • Урадити. Петља ради на логичким резултатима и наставља да покреће петљу напред-назад док је услов теста ИСТИНА. Оног тренутка када тест услов врати ФАЛСЕ, изаћи ће из петље.
  • Из петље можемо изаћи у било ком тренутку подешавањем још једног логичног теста унутар круга помоћу функције ИФ.
  • Ако је услов или тест наведен на врху петље, прво ће проверити тест и даље напредовати само ако је ИСТИНА.
  • Ако се услов или тест испоруче на крају петље, прво ће извршити блок кода унутар наредбе петље, а убудуће ће тестирати услов да одлучи хоће ли се још једном покренути петља или не.

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