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

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

Сингле Лооп | Доубле Лооп | Трипле Лооп | Урадите док петље

Лоопинг је једна од најмоћнијих програмских техника. А петља ин Екцел ВБА омогућава вам да петље кроз низ ћелија са само неколико линија кодова.

Сингле Лооп

Можете користити једну петљу за петљи кроз једнодимензионални опсег ћелија.

Поставите командно дугме на свој радни лист и додајте следеће линије кода:

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

Резултат када кликнете на командно дугме на листу:

Сингле Лооп у Екцел ВБА

Објашњење: Линије кодова између Фор и Нект ће се извршавати шест пута. За и = 1, Екцел ВБА улази вредност 100 у ћелију на пресеку редова 1 и колоне 1. Када Екцел ВБА достигне следећи и, он се повећава са 1 и враћа назад у изјаву Фор. За и = 2, Екцел ВБА улази вредност 100 у ћелију на пресеку редова 2 и колоне 1 итд.

Напомена: добра је пракса да увек унесете (унесите) код између речи Фор и Нект. Ово вам олакшава читање вашег кода.

Доубле Лооп

Можете користити двоструку петљу за петљи кроз дводимензионални опсег ћелија.

Поставите командно дугме на свој радни лист и додајте следеће линије кода:

Dim i As Integer, j As Integer

For i = 1 To 6
    For j = 1 To 2
        Cells(i, j).Value = 100
    Next j
Next i

Резултат када кликнете на командно дугме на листу:

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

Објашњење: За и = 1 и ј = 1, Екцел ВБА улази вредност 100 у ћелију на пресеку редова 1 и колоне 1. Када Екцел ВБА достигне Следећи ј, повећава ј са 1 и скокова назад у изводу Фор ј. За и = 1 и ј = 2, Екцел ВБА улази вредност 100 у ћелију на пресеку редова 1 и колоне 2. Затим, Екцел ВБА игнорира следећу ј јер ј само ради од 1 до 2. Када Екцел ВБА достигне следећи и , повећава се са 1 и враћа назад у изјаву Фор и. За и = 2 и ј = 1, Екцел ВБА улази вредност 100 у ћелију на пресеку редова 2 и колоне 1 итд.

Трипле Лооп

Можете користити троструку петљу да бисте се кретали кроз дводимензионалне опсеге на више радних листова Екцел-а.

Поставите командно дугме на свој радни лист и додајте следеће линије кода:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3
    For i = 1 To 6
        For j = 1 To 2
            Worksheets(c).Cells(i, j).Value = 100
        Next j
    Next i
Next c

Објашњење: Једина промена у односу на код за двоструку петљу је да смо додали још једну петљу и додали радне листе (ц). испред ћелија да бисте добили дводимензионални опсег на првом листу за ц = 1, други лист за ц = 2, а трећи лист за ц = 3. Преузмите датотеку Екцел да бисте видели овај резултат.

Урадите док петље

Поред Фор Нект петље, постоје и друге петље у програму Екцел ВБА. На пример, До Вхиле Лооп. Код постављен између До Вхиле и Лооп ће се поновити све док је део после До Вхиле ис труе.

1. Поставите командно дугме на свој радни лист и додајте следеће линије кода:

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

Резултат када кликнете на командно дугме на листу:

Урадите док петље

Објашњење: све док је нижа од 6, Екцел ВБА улази вредност 20 у ћелију на пресеку редова и и ступцу 1 и повећава и за 1. У Екцел ВБА (и на другим програмским језицима) симбол "=" значи постаје. То не значи једнако. Дакле, и = и + 1 значи да постанем и + 1. Другим речима: узмем садашњу вредност и додам 1 њему. На пример, ако је и = 1, постаје 1 + 1 = 2. Као резултат, вредност 20 ће бити стављена у колону А пет пута (не шест, јер Екцел ВБА зауставља када је ја једнако 6).

2. Унесите неке бројеве у колону А.

Било који број редова

3. Поставите командно дугме на свој радни лист и додајте следеће линије кода:

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
    Cells(i, 2).Value = Cells(i, 1).Value + 10
    i = i + 1
Loop

Резултат када кликнете на командно дугме на листу:

Адванцед До Вхиле Лооп

Објашњење: све док ћелије (и, 1).Вредност није празна (<> значи није једнака), Екцел ВБА улази вредност у ћелију на пресеку редова и и колоне 2, што је 10 више од вредности у ћелији на пресеку редова и и колоне 1 Екцел ВБА зауставља када је ја једнако 7 јер ћелије (7, 1) .Валуе је празно. Ово је одличан начин да се кроз било који број редова пребаците на радни лист.

Такође прочитајте: