В VBA цикл используется, когда вам нужно выполнить одну и ту же задачу несколько раз, пока не будет выполнено условие (или пока условие не станет истинным).
В этом руководстве вы узнаете, как использовать цикл For Next Loop в Excel VBA.
Если вы заинтересованы в изучении VBA простым способом, ознакомьтесь с моими Онлайн-обучение по Excel VBA.
Использование цикла FOR NEXT в Excel VBA
Цикл «For Next» работает, выполняя цикл указанное количество раз.
Например, если я прошу вас вручную сложить целые числа от 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 as Integer Dim Count as Integer Total = 0 For Count = 1 to 10 Total = Total + Count Next Count MsgBox Total End Sub
В этом коде значение Total устанавливается в 0 перед переходом в цикл For Next.
Как только он попадает в цикл, он сохраняет общее значение после каждого цикла. Таким образом, после первого цикла, когда счетчик равен 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 to 10 Step 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» также можно использовать для перебора каждого символа в строке.
Например, если у вас есть список буквенно-цифровых строк, вы можете использовать цикл 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 Конец подписки
Это пример вложенного цикла 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 Then Else в VBA.
- Excel VBA Выбрать регистр.
- Создание пользовательской функции в Excel.
- События Excel VBA - простое (и полное) руководство
- Как записать макрос в Excel.
- Как запустить макрос в Excel.
- Как создать надстройку в Excel.
- Как сохранить и повторно использовать макрос с помощью личной книги макросов Excel.
- Полезные примеры макросов Excel для начинающих.
- Использование функции InStr в VBA.