/ / Excel Loop для VBA

Цикл Excel VBA

Одинарний цикл | Подвійна петля | Потрійний цикл | Робіть петлю

Цикл є одним із найпотужніших методів програмування. А. петля в Excel VBA дає змогу петляти через декілька комірок за допомогою декількох рядків кодів.

Одинарний цикл

Ви можете використовувати один цикл для циклу через одновимірний діапазон клітин.

Помістіть на вашій робочій клавіші команду та додайте наступні кодові рядки:

Dim i As Integer

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

Результат, коли ви натискаєте кнопку команди на аркуші:

Один цикл в Excel VBA

Пояснення: Кодові лінії між «Попередження» і «Далі» будуть виконуватися шість разів. Для i = 1 Excel VBA входить у значення 100 в комірку на перехресті рядка 1 та колонці 1. Коли Excel VBA досягає Далі i, він збільшується на 1 і повертається на виписку For. Для i = 2 Excel VBA входить у значення 100 у комірку на перетині рядка 2 та колонки 1 і т. Д.

Примітка: найкращим кроком завжди є відступ (вкладка) між словами For і Next. Це полегшує читання вашого коду.

Подвійна петля

Ви можете використовувати подвійний цикл для циклу через двомірний діапазон клітин.

Помістіть на вашій робочій клавіші команду та додайте наступні кодові рядки:

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

Результат, коли ви натискаєте кнопку команди на аркуші:

Подвійна цикл в Excel VBA

Пояснення: Для i = 1 і j = 1 Excel VBA входить у значення 100 в комірку на перехресті рядка 1 та колонці 1. Коли Excel VBA досягає наступного j, він збільшується j за допомогою 1 і повертається до оператора For j. Для i = 1 і j = 2 Excel VBA входить у значення 100 в комірку на перехресті рядка 1 та колонці 2. Далі Excel VBA ігнорує Next j, оскільки j тільки працює від 1 до 2. Коли Excel VBA досягає Next i , він збільшується на 1 і повертається на виписку For i. Для i = 2 і j = 1 Excel VBA входить у значення 100 в комірку на перетині рядка 2 та колонки 1 і т. Д.

Потрійний цикл

Ви можете використовувати потрійний цикл для циклу через двовимірні діапазони на декількох аркушах Excel.

Помістіть на вашій робочій клавіші команду та додайте наступні кодові рядки:

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

Пояснення: Єдина зміна, порівняно з кодом для подвійної циклу, полягає в тому, що ми додали ще один цикл і додали робочі аркуші (c). перед Клітинами, щоб отримати двомірний діапазон на першому аркуші для c = 1, другий аркуш для c = 2 і третій аркуш для c = 3. Завантажте файл Excel, щоб побачити цей результат.

Робіть петлю

Крім того, для циклу For Next є інші цикли в Excel VBA. Наприклад, Do Loop While. Код, розміщений між Do Doing та Loop, буде повторюватися, якщо частина після Do Doing буде правдою.

1. Встановіть на вашій робочій клавіші команду та додайте наступні кодові рядки:

Dim i As Integer
i = 1

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

Результат, коли ви натискаєте кнопку команди на аркуші:

Робіть петлю

Пояснення: якщо я нижчий за 6, то Excel VBA вводить значення 20 в комірку на перетині рядка 1 та стовпець 1 і збільшує значення i на 1. У Excel VBA (та інших мовах програмування) символ "=" означає стає Це не означає рівне. Таким чином, i = i + 1 означає, що i стає i + 1. Іншими словами: візьміть поточну величину i і додайте 1 до нього. Наприклад, якщо i = 1, i стає 1 + 1 = 2. В результаті значення 20 буде поміщено в стовпчик A п'ять разів (не шести, тому що Excel VBA припиняється, коли я дорівнює 6).

2. Введіть деякі цифри у стовпці A.

Будь-яке число рядків

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

Результат, коли ви натискаєте кнопку команди на аркуші:

Advanced Do Loop While

Пояснення: поки клітини (i, 1).Значення не порожнє (<> означає не дорівнює), Excel VBA вводить значення в комірку на перетині рядка i та стовпчика 2, тобто на 10 вище, ніж значення в комірці на перетині рядка 1 та стовпчика 1 Excel VBA припиняється, коли я дорівнює 7, тому що комірки (7, 1). Значення пусте. Це чудовий спосіб зациклення через будь-яку кількість рядків на робочому аркуші.

Також читайте: