Excel VBA Loop
Циклический является одним из самых мощных методов программирования. Петля в Excel VBA позволяет перебрать диапазон ячеек с помощью всего лишь несколько кодов строк.
Одиночные петли
Вы можете использовать один цикл для перебора одномерного диапазона ячеек.
Поместите ссылка: VBA Create-A-макро-# командной кнопки [Кнопка управления] /
на листе и добавьте следующие строки кода:
Dim i As Integer For i = 1 To 6 Cells(i, 1).Value = 100 Next i
Результат при нажатии на кнопку управления на листе:
Объяснение: строки кода между For и Next будет выполняться шесть раз. Для г = 1, Excel VBA вводит значение 100 в ячейке на пересечении строки 1 и столбца 1. Когда Excel VBA достигает Далее я, это увеличивает I с 1 и переходит обратно к Для постановки. Для I = 2, Excel VBA вводит значение 100 в ячейке на пересечении строки 2 и столбца 1 и т.д.
Примечание: это хорошая практика, чтобы всегда отступ (табл) код между словами Для и Next. Это делает легче читать ваш код.
двойная петля
Вы можете использовать двойной цикл для перебора двухмерной диапазона ячеек.
Поместите ссылка: VBA Create-A-макро-# командной кнопки [Кнопка управления] /
на листе и добавьте следующие строки кода:
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
Результат при нажатии на кнопку управления на листе:
Объяснение: Для I = 1 и у = 1, Excel VBA вводит значение 100 в ячейке на пересечении строки 1 и столбца 1. Когда Excel VBA достигает Next J, оно увеличивает J с 1 и переходит обратно к Для J заявления , При г = 1 и J = 2, Excel VBA вводит значение 100 в ячейке на пересечении строки 1 и столбца 2. Далее, Excel VBA игнорирует Далее, поскольку J J работает только от 1 до 2. Когда Excel VBA достигает Далее я , это увеличивает я с 1 и прыгает обратно к ибо я заявление. Для I = 2 и у = 1, Excel VBA вводит значение 100 в ячейке на пересечении строки 2 и столбца 1 и т.д.
Тройной контур
Вы можете использовать тройной цикл для перебора двумерный диапазонов на нескольких рабочих листах Excel.
Поместите ссылка: VBA Create-A-макро-# командной кнопки [Кнопка управления] /
на листе и добавьте следующие строки кода:
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
Объяснение: Единственное изменение, внесенное по сравнению с кодом для двойного цикла является то, что мы добавили еще одну петлю и добавил Worksheets (с). в передней части клеток, чтобы получить двумерный спектр на первом листе для C = 1, второй лист для с = 2, а третий лист для с = 3. Загрузить файл Excel, чтобы увидеть этот результат.
Do While Loop
Кроме того, для следующего цикла, существуют и другие циклы в Excel VBA. Например, Do While Loop. Код размещен между Do While и Loop будет повторяться до тех пор, как часть после Do While верно.
-
Поместите
ссылка: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте следующие строки кода:
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. В Excel VBA (и в других языках программирования), символ «= ‘означает становится. Это не значит, равны. Таким образом, I = I + 1 означает, что я становится + 1. Другими словами: принимают текущее значение из I и добавить к нему 1. Например, если я = 1, я становится 1 + 1 = 2. В результате, значение 20 будет помещен в колонке А пять раз (не шесть, потому что Excel VBA останавливается, когда я равен 6).
-
Введите несколько чисел в столбце A.
-
Поместите
ссылка: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте следующие строки кода:
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) .Value не пустой (<> означает не равно), Excel VBA вводит значение в ячейку на пересечении строки и столбца я 2, то есть 10 выше, чем значение в ячейке на пересечении строки I и столбца 1. Excel VBA останавливается, когда я = 7, потому что клетки (7, 1) .Value пуст. Это отличный способ петли через любое количество строк на листе.