7 Примеры Для Loops в Microsoft Excel VBA
_Если вы пишете программу VBA и хотите выполнять одну и ту же задачу несколько раз, вы можете сделать это, используя VBA для циклов. VBA — это язык последовательного программирования. Каждая строка кода выполняется сверху вниз до тех пор, пока не закончатся строки кода для чтения. Если вы хотите вернуться и выполнить задачу, вам нужно принудительно использовать код макроса.
Вы получаете результаты с помощью цикла ._
Цикл For в VBA — один из наиболее распространенных типов цикла. Цикл For имеет две формы: For Next и For Each In Next. Цикл For обычно используется для последовательного перемещения по списку элементов или чисел.
Чтобы завершить цикл For в любой заданной точке, мы можем использовать оператор выхода.
For Loop будет повторяться до тех пор, пока не встретит конечное условие. Как только конечное условие выполнено, процесс программирования продолжится вниз в своем естественном направлении.
The For … Next loop has the following syntax: For counter = start_counter To end_counter 'Do something here (your code) Next counter
Фактически мы создаем цикл, который использует счетчик переменных в качестве «хранителя времени» цикла. Мы устанавливаем его на значение, равное start_counter, в начале цикла, а затем увеличиваем его на 1 во время каждого цикла, пока не будет достигнуто конечное условие. Цикл будет выполняться до тех пор, пока значение счетчика не станет равным end_counter. Цикл выполняется в последний раз, когда оба приведенных выше значения совпадают, а затем цикл останавливается.
Все вышеперечисленное может сбить с толку некоторых людей, поэтому давайте подготовимся и начнем изучать For Loop in excel с нескольких примеров.
Создайте новую книгу Excel, затем сохраните ее с расширением .xlsm. Чтобы открыть экран редактора Visual Basic, используйте ALT + F11. Вставить новый модуль. Скопируйте приведенный ниже код в стандартный модуль VB
Цикл 1 (отображение числа с помощью msgbox)
Sub Loop1() Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & " is " & "Your StartNumber" Next StartNumber End Sub
Пояснение к коду:
Код VBA требует, чтобы вы присвоили значение StartNumber, где EndNumber — это переменные, которые объявлены как целые числа в качестве отправной точки для вашего цикла. Эти значения могут быть любым числом, и у нас есть EndNumber, поскольку 5 StartNumber запускается с 1 For StartNumber = 1 To EndNumber означает, что код будет начинаться с 1 (StartNumber) до 5 (EndNumber)
-
MsgBox StartNumber & «is» & «Your StartNumber» отобразит следующее окно сообщения
Loop2 (значения заполнения)
Sub Loop2() 'Fills cells A1:A56 with values of X by looping' --- Comment 'Increase value of X by 1 in each loop' --- Comment Dim X As Integer For X = 1 To 56 Range("A" & X).Value = X Next X End Sub
Пояснение к коду:
Мы присвоили X целое число. Для X = от 1 до 56; это начнется с 1 и продолжится до 56 с шагом 1 каждый раз * Range («A» & X) .Value = X; эта строка сохранит значение X и перейдет в диапазон от A1 до A56
Loop3 (Заливка ячеек цветом фона)
Sub Loop3() ' Fills cells B1:B56 with the 56 background colours' --- Comment Dim X As Integer For X = 1 To 56 Range("B" & X).Select With Selection.Interior .ColorIndex = X .Pattern = xlSolid End With Next X End Sub
Пояснение к коду:
Мы присвоили X как целое число. Для X = от 1 до 56 начнется с 1 и продолжится до 56 с шагом 1 каждый раз Range («B» & X) .Select; эта строка сохранит значение X и выберет ячейки от B1 до B56. Следующие 4 строки, то есть с Selection.Interior, выберут внутренний colorindex и возьмут значение из X этого colorindex, так что 1 принадлежит черному цвету; 2 относится к белому цвету; 3 для красных и т. Д.
Цикл 4 (значения заполнения с шагом 2)
По умолчанию значение Шага равно 1, однако может быть установлено число больше 1.
Sub Loop4() ' Fills every second cell from C1:C50 with values of X' --- Comment Dim X As Integer For X = 1 To 50 Step 2 Range("C" & X).Value = X Next X End Sub
Пояснение к коду:
Мы присвоили X целое число. Для X = от 1 до 50 Шаг 2; это будет начинаться с 1 в X до 50 с шагом 2 каждый раз * Range («C» & X) .Value = X; эта строка сохранит значение X и перейдет в диапазон от C1 до C50
Цикл 5 (VBA For Loop in Reverse с инструкцией STEP)
Необязательно, чтобы счетчик в цикле For двигался только с меньших значений на более высокие; вместо этого цикл For может работать в обратном направлении, то есть от высоких к меньшим значениям.
Несмотря на то, что значение Шага по умолчанию равно 1, его можно установить в обратном порядке.
Sub Loop5() ' Fills cells from D1:D50 with values of X' --- Comment ' In this case X decreases by 1' --- Comment Dim X As Integer, Row As Integer Row = 1 For X = 50 To 0 Step -1 Range("D" & Row).Value = X Row = Row + 1 Next X End Sub
Пояснение к коду:
Мы назначили X & Row как целое число. Строка содержит значение 1 Для X = от 50 до 0 Шаг -1; это начнется с 50 с уменьшением на 1 в X до 0 Range («D» & Row) .Value = X; эта строка сохранит значение X и перейдет в диапазон от D1 до D50
Цикл 6 (заполняет каждую вторую ячейку в обратном порядке ШАГОМ-2)
В приведенном выше примере цикла For мы можем использовать Step и order, чтобы увидеть, работает ли цикл For в прямом или обратном направлении.
Sub Loop6() ' Fills every second cell from E1:E100 with values of X' --- Comment ' In this case X decreases by 2' --- Comment Dim X As Integer, Row As Integer Row = 1 For X = 100 To 0 Step -2 Range("E" & Row).Value = X Row = Row + 2 Next X End Sub
Пояснение к коду:
Мы назначили X & Row целым числом. Строка содержит значение 1 Для X = от 100 до 0 Шаг -2; это начнется с 100 с уменьшением на 2 в X до 0 Range («E» & Row). Value = X; эта строка сохранит значение X и перейдет в диапазон от E1 до E100
Цикл 7 (Цикл для цикла с условием IF: заполняет ячейки, начиная с определенной ячейки) Это заполнит ячейки из ячейки F11 значением 11 до тех пор, пока X не будет соответствовать условию IF
Sub Loop7() ' Starts to fill cells F11:F100 with values of X' --- Comment ' This will exit from the loop after 50' --- Comment Dim X As Integer For X = 11 To 100 Range("F" & X).Value = X If X = 50 Then MsgBox ("Bye Bye") Exit For End If Next X End Sub
Пояснение к коду:
Мы присвоили X целое число. Для X = от 11 до 100; начнется с 11 с приращением на 1 в X, пока условие не будет соответствовать * Range («F» & X) .Value = X; эта строка сохранит значение X и перейдет в диапазон F11, пока условие не будет соответствовать
-
После ввода значения 50 в ячейку F50 отобразится следующее окно сообщения
Если вам понравились наши блоги, поделитесь ими с друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook .
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]