VBA Do Loops - Как да използвам Excel VBA Do Loops?

Съдържание

Excel VBA Do Loop

VBA Do loop , това е набор от инструкции в рамките на подпроцедура, при която кодът се изпълнява определен брой пъти, докато се достигнат желаните критерии или се надвиши някакъв праг или е безопасно да се каже, че докато не се получат необходимите данни.

Докато цикълът работи върху логически резултати, той продължава да изпълнява цикъла напред-назад, докато условието на теста е TRUE. В момента, в който условието на теста се върне FALSE, то ще излезе от цикъла. Циклите са сърцето на всеки език за програмиране. В нашите статии ние демонстрираме значението на циклите и начините за тяхното кодиране. В тази статия ви показваме как да използвате Do Loop.

Как да използвам VBA Do Loop?

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

Видяхме теста за състоянието в началото на цикъла. В по-ранния код видяхме примера за вмъкване на серийни номера и кодът беше такъв.

Код:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 клетки (k, 1). Стойност = kk = k + 1 Loop End Sub

Сега можете да стартирате този код ръчно или чрез клавиш за бърз достъп F5, за да видите резултата.

Този код ще вмъкне серийни номера от 1 до 10.

Но можем да тестваме и състоянието в края на цикъла. Трябва да използваме думата „while“ и теста за състоянието в края след думата Loop.

Единствената промяна тук е да приложите теста в края, както е показано по-долу.

Код:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

По този начин можем да тестваме условието и в края на цикъла.

Забележка: Кодът ще се изпълни, след което тества условието да се върне към цикъл още веднъж или не. Това означава, че ще се стартира първо и след това ще опита ситуацията по-късно.

Пример # 2 - Сумиране с помощта Do Do Loop

Да приемем, че имате данни за продажбите и разходите във вашия Excel лист. По-долу е наборът от фиктивни данни, които създадох за изчисляване.

Сега трябва да получим стойността на печалбата в колона В. Вече създадох код, който ще ми свърши работа.

Код:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp) .Row Do While k <= LR клетки (k, 3). Стойност = клетки (k , 1) + клетки (k, 2) k = k + 1 Loop End Sub
LR = клетки (редове. Брой, 1). Край (xlUp). Ред

Този код ще идентифицира последния използван ред в първата колона. Това прави кода динамичен, защото ако има някакво добавяне или изтриване на данните, това ще коригира времето ми за последователност, за да стартирам цикъла.

k = 2

Искаме изчислението да се извършва от втората клетка нататък. Така че първоначалната стойност на k е 2.

Направете докато k <= LR

Както казах, LR ще намери последния използван ред в първата колона. Това означава, че цикълът ще работи, докато k е <= до стойността на LR. В този случай имам 10 реда, така че LR = 10.

Цикълът ще се изпълнява, докато стойността на k достигне 10. След като сумата премине 10 цикъла, тя ще спре.

Сега можете да стартирате този код с помощта на клавиш за бърз достъп F5 или ръчно, за да видите резултата.

Пример # 3 - Изходно изявление в Do While Loop

Можем също да излезем от цикъла, докато условието е все още само TRUE. Например, вземете горните данни и тук.

Да предположим, че не искате да правите пълното изчисление, но трябва само да изчислите първите 5 реда печалба и веднага щом достигне 6 -ти ред, искате да излезете от цикъла. Това може да се направи с помощта на функцията IF в Excel. Кодът по-долу включва изявлението за излизане.

Код:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp) .Row Do While k 6 След това Exit Do Cells (k, 3). k, 1) + клетки (k, 2) k = k + 1 Loop End Sub
„Ако k> 6, тогава излез направете“

Този ред код ще започне процеса на излизане. Цикълът ще продължи да работи, докато стойността на k достигне 6. В момента, в който надвиши 6, Ако условието ще изпълни кода, „Exit Do“.

Сега можете да стартирате този код с помощта на клавиш за бърз достъп F5 или ръчно, за да видите резултата.

Неща за запомняне

  • Направете. Цикълът работи върху логически резултати и продължава да изпълнява цикъла напред-назад, докато условието на теста е TRUE. В момента, в който условието на теста се върне FALSE, то ще излезе от цикъла.
  • Можем да излезем от цикъла по всяко време, като коригираме още един логичен тест вътре в кръга, като използваме функцията IF.
  • Ако условието или тестът са предоставени в горната част на цикъла, той първо ще провери теста и ще продължи напред, само ако е ВЯРНО.
  • Ако условието или тестът са предоставени в края на цикъла, той първо ще изпълни блока с код вътре в инструкцията за цикъл и в бъдеще ще тества условието, за да реши дали да се върне отново, за да стартира цикъла още веднъж или не.

Интересни статии...