За следващия цикъл в Excel VBA - Ръководство за начинаещи с примери

Във VBA цикълът се използва, когато трябва да изпълните една и съща задача няколко пъти, докато не бъде изпълнено условие (или докато условието е вярно).

В този урок ще научите как да използвате For Next Loop в Excel VBA.

Ако се интересувате да научите VBA по лесния начин, вижте моя Онлайн обучение по Excel VBA.

Използване на FOR NEXT Loop в Excel VBA

Цикълът „За следващия“ работи, като изпълнява цикъла определен брой пъти.

Например, ако ви помоля да добавите целите числа от 1 до 10 ръчно, ще добавите първите две числа, след това добавете третото число към резултата, след което добавете четвъртото число към резултата, така нататък …

Нали?

Същата логика се използва в цикъла For Next във VBA.

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

Ето формата за цикъл For Next, който трябва да използвате във VBA, за да добавите първите 10 цели числа.

За i = 1 до 10 [добавете i -то положително число към резултата] Следващо i

Сега нека да разгледаме няколко примера за това как да използваме цикъла For Next.

Пример 1: Добавяне на първите 10 положителни числа

По -долу е кодът, който ще добави първите 10 положителни числа, използвайки цикъл For Next. След това ще се покаже поле за съобщение, показващо сумата от тези числа.

Sub AddNumbers () Dim Total Total As Integer Dim Count As Integer Total = 0 For Count = 1 до 10 Total = Total + Count Next Count MsgBox Total End Sub

В този код стойността на Total е зададена на 0, преди да влезе в цикъла For Next.

След като влезе в цикъла, той държи общата стойност след всеки цикъл. Така че след първия цикъл, когато Counter е 1, стойността „Total“ става 1, а след втория цикъл става 3 (1+2) и т.н.

И накрая, когато цикълът приключи и когато Total има сумата от първите 10 положителни числа, MsgBox просто показва резултата в поле за съобщение.

Щракнете тук, за да изтеглите примерния файл

Пример 2: Добавяне на първите 5 четни положителни числа

За да сумирате първите пет четни положителни числа (т.е. 2,4,6,8 и 10), имате нужда от подобен код с условие да вземете предвид само четните числа и да игнорирате нечетните числа.

Ето код, който ще го направи:

Sub AddEvenNumbers () Dim Total As Integer Dim Count As Integer Total = 0 For Count = 2 до 10 Стъпка 2 Total = Total + Count Next Count MsgBox Total End Sub

Обърнете внимание, че стартирахме стойността Count от 2 и също използвахме стъпка 2 в синтаксиса For.

Стъпка 2 би казала на кода да увеличава стойността „Count“ с 2 всеки път, когато цикълът се изпълнява. Така че стойността Count започва от 2 и след това става 4, 6, 8 и 10, когато настъпи цикълът.

ЗАБЕЛЕЖКА: Друг начин да направите това може да бъде да стартирате цикъла от 1 до 10 и в рамките на цикъла да проверите дали числото е четно или нечетно. Използването на Step в този случай е по -ефективен начин, тъй като не изисква цикълът да се изпълнява 10 пъти, а само 5 пъти.

Щракнете тук, за да изтеглите примерния файл.

Пример 3: Вземете числовата част от буквено -цифров низ

Цикълът „За следващо“ също може да се използва за цикъл през всеки знак в низ.

Например, ако имате списък с буквено -цифрови низове, можете да използвате цикъла For Next, за да извлечете числата от него (както е показано по -долу):

Ето код, който създава персонализирана функция във VBA, която може да се използва като всяка друга функция на работен лист.

Той извлича цифровата част от буквено -цифровия низ.

Функция GETNUMERIC (Cl As Range) Dim i As Integer Dim Result as Long For i = 1 To Len (Cl) If IsNumeric (Mid (Cl, i, 1)) then Result = Result & Mid (Cl, i, 1) End If Next i GetNumeric = Крайна функция на резултата

В този код броят на изпълнения на цикъла зависи от дължината на буквено -цифровия низ (той използва функцията LEN, за да намери дължината на низа).

Трябва да поставите тази функция в прозореца с код на модула и след това можете да я използвате като всяка друга функция на работен лист.

Щракнете тук, за да изтеглите примерния файл.

Пример 4: Получаване на случайни числа в избрания диапазон

Да предположим, че искате бързо да въведете произволни числа в избраните клетки, ето кода, който ще го направи.

Sub RandomNumbers () Dim MyRange As Range Dim i As Integer, j As Integer Set MyRange = Selection For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells (j, i) = Rnd Следващ j Следващ i Краен Sub

Това е пример за вложен цикъл For Next, където For цикъл се използва в рамките на For Loop.

Да предположим, че правите селекция от 10 реда и 4 колони, стойността на i варира от 1 до 4, а стойността на j варира от 1 до 10.

Когато се изпълнява първият цикъл For, стойността на i е 1. След това се премества във втория цикъл For, който работи 10 пъти (за всеки ред).

След като вторият цикъл For е изпълнен 10 пъти, той се връща към първия цикъл For, където сега стойността на i става 2. Отново следващият цикъл For се изпълнява 10 пъти.

Ето как работи вложеният цикъл For Next.

Щракнете тук, за да изтеглите примерния файл.

Може да харесате и следните уроци по Excel VBA:

  • Работа с клетки и диапазони в Excel VBA.
  • Работа с работни листове в Excel VBA.
  • Работа с работни книги с помощта на VBA.
  • Използване на IF след това Други изявления във VBA.
  • Excel VBA Изберете случай.
  • Създаване на дефинирана от потребителя функция в Excel.
  • Събития на Excel VBA - Лесно (и пълно) ръководство
  • Как да запишете макрос в Excel.
  • Как да стартирате макрос в Excel.
  • Как да създадете добавка в Excel.
  • Как да запазвате и използвате повторно макроса с помощта на Excel Personal Macro Workbook.
  • Полезни примери за макроси на Excel за начинаещи.
  • Използване на функцията InStr във VBA.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave