Excel VBA делать до цикла

До тех пор, пока цикл не продолжит повторять операторы, пока условие / критерии не станут ИСТИННЫМИ. Он будет выполнять операторы до тех пор, пока условия ЛОЖЬ. Как только условие / критерии становятся ИСТИНОЙ, это завершает цикл. Это может выглядеть как противоположность циклу Do While, где цикл выполняется до тех пор, пока критерии равны TRUE, и завершается, как только критерии FALSE.

Ниже приведена схема последовательности операций, поясняющая работу цикла «До»:

Синтаксис «До цикла» в Excel VBA

Do To Loop имеет два вида синтаксиса в Excel VBA.

Синтаксис 1:

 Цикл выполнения До (Условие) (Операторы должны быть выполнены) 

Синтаксис 2:

 Do (операторы, которые должны быть выполнены), цикл до (условие) 

Основное различие между этими двумя синтаксисами заключается в исполнении. В первом синтаксисе цикл всегда проверяет, является ли условие истинным или ложным. Если это False, он будет повторять цикл снова. Как только условие / критерии выполняются, цикл завершается. В этом случае существует вероятность того, что цикл завершается на самой первой итерации (если условие истинно). Следовательно, вы не получите никакого вывода в этом случае. Однако во втором синтаксисе цикл сначала выполнит операторы, а затем проверит условие, является ли оно истинным или ложным. Если условие ложно, оно снова выполнит тот же набор операторов и проверит условие. Если первая итерация сама задает условие как True, этот цикл завершается, но перед этим будет выполнен оператор. В этом случае мы получим хотя бы одну итерацию (как нулевой вывод).

Наконец, вывод двух кодов будет одинаковым. Однако исполнение отличается от этих двух.

Пример Excel VBA Do To Loop

Давайте посмотрим примеры цикла «До тех пор» в Excel VBA.

Вы можете скачать этот шаблон VBA Do Loop Excel здесь - VBA Do To Loop Excel Template

Пример # 1 - цикл VBA Do To, когда условия проверяются в начале

Выполните следующие шаги, чтобы применить цикл «До» в Excel VBA.

Шаг 1: Вставьте новый модуль в Visual Basic Editor (VBE), чтобы иметь возможность писать код.

Шаг 2: Определите подпроцедуру, которая может хранить код макроса, который вы будете писать.

Код:

 Sub Do_Until_Ex1 () End Sub 

Шаг 3: Определите новую переменную «X» с типом данных «Long». Эта переменная может использоваться в качестве условия / критерия в цикле До.

Код:

 Sub Do_Until_Ex1 () Dim X As Long End Sub 

Шаг 4: Установите начальное значение 1 для переменной X.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Шаг 5: Запустите цикл с ключевыми словами До.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 До конца Sub 

Шаг 6: Укажите критерии как X = 11 в разделе До. Это условие, которое позволяет разрывать цикл, когда он равен True. Это означает, что цикл будет работать до тех пор, пока значение X не станет равным 11. Как только значение X станет равным 11, цикл завершится.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 До X = 11 End Sub 

Шаг 7: Теперь используйте ячейки VBA. Значение функции, чтобы иметь возможность добавлять квадрат каждого числа до X под первым столбцом.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 До тех пор, пока X = 11 клеток (X, 1). Значение = X * X End Sub 

Шаг 8: Опять же, нам нужно установить приращение в X на 1, чтобы при каждом запуске цикла и проверке условия он переходил к следующему числу и сохранял его квадратное значение в соответствующей ячейке до числа 11.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Делать до X = 11 ячеек (X, 1). Значение = X * XX = X + 1 End Sub 

Шаг 9: Завершите цикл «До», введя ключевое слово «Цикл» в конце кода.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Делать до X = 11 ячеек (X, 1). Значение = X * XX = X + 1 Конец цикла 

В этом коде мы хотели получить квадратные значения для чисел, начиная с 1 до 11 (как только значение равно 11, цикл завершается). Под каждой ячейкой листа Excel (до ячейки № 11) значения будут сохранены. Увеличение на 1 единицу позволяет каждый раз увеличивать число на 1 в предыдущем значении X, а квадрат этого значения печатается в соответствующей ячейке. Например, квадратичное значение для 3 будет напечатано под 3- й ячейкой активного листа Excel. Этот цикл выполняется до тех пор, пока X не равен 11. Поэтому под ячейкой A1 до ячейки A10 мы получаем квадратные значения числа, начиная с 1 до 10 (цикл с номером 11 завершен).

Шаг 10: Нажмите кнопку «Выполнить» или нажмите клавишу F5, чтобы запустить этот код и увидеть результат.

Пример # 2 - цикл До, когда условия проверяются в конце цикла

Выполните следующие шаги, чтобы применить цикл «До» в Excel VBA.

Шаг 1: Определите новую подпроцедуру в модуле VBE.

Код:

 Sub Do_Until_Ex2 () End Sub 

Шаг 2: Определите переменную «Y» с типом данных «Long». Эта переменная будет полезна при зацикливании условий.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long End Sub 

Шаг 3: Установите начальное значение переменной «Y» как 1.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 End Sub 

Шаг 4: Добавьте условие Do, напечатав Do в следующей строке после того, как вы установили начальное значение Y в 1.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do End Sub 

Шаг 5: Добавьте фрагмент кода, который вы хотите выполнить в цикле Do. Здесь мы возьмем тот же пример, что и выше (это поможет нам узнать, как выходные данные одинаковы, но компиляции для двух из этих кодов различны).

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets («Пример 2»). Ячейки (Y, 1). Значение = Y * Y End Sub 

Шаг 6: После каждой итерации цикла вы хотите, чтобы значение увеличивалось на 1 единицу, для этого задайте команду в разделе Do.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets («Пример 2»). Ячейки (Y, 1). Значение = Y * YY = Y + 1 End Sub 

Шаг 7: Добавьте закрывающий оператор для этого цикла с ключевым словом «Цикл».

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets («Пример 2»). Ячейки (Y, 1). Значение = Y * YY = Y + 1 Loop End Sub 

Оставайтесь на линии! Есть нечто большее. Вы должны добавить критерий / условие до в этот цикл, на этот раз после ключевого слова Loop. Это позволит компилятору проверить условие в конце цикла.

Шаг 8: Добавьте до Y = 11 в качестве условия после ключевого слова цикла.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets («Пример 2»). Ячейки (Y, 1). Значение = Y * YY = Y + 1 Цикл До Y = 11 End Sub 

Шаг 9: Запустите этот код, нажав F5 или кнопку «Выполнить» и увидите магию под листом «Пример 2».

Как работает этот код?

Система возводит в квадрат значение Y каждый раз под циклом и сохраняет строку под вторым столбцом листа с именем «Пример 2» строка за строкой. После каждой итерации текущее значение Y увеличивается на 1 единицу, а обновленное значение возводится в квадрат и сохраняется. Пока значение меньше, чем значение критерия (Y = 11), код выполнит квадрат и сохранит его. Как только компилятор значения достигает значения Y = 11, он прекращает выполнение кода и завершает его.

Оба кода дают одинаковый результат, но логически существует разница в компиляции для обоих. В первом типе кода условие проверяется в начале цикла, и если оно ложно, то только цикл начинает вычислять следующее выражение. Однако во втором примере код запускает цикл и выполняет операторы Do в начале (сохраняя значения в буферной памяти для операторов выполнения). В конце цикла компилятор приходит с критерием и проверяет его с помощью значения буфера.

То, что нужно запомнить

  • VBA Do Пока - это полностью обратный случай Excel VBA Do While. Цикл VBA Do While выполняется до тех пор, пока условие имеет значение ИСТИНА. Как только условие ЛОЖЬ, цикл Do While прерывается. С другой стороны, VBA Do To выполняется до тех пор, пока условие имеет значение FALSE. Как только условие ИСТИНА, цикл завершается.
  • У него есть два способа обработки: один, где условие проверяется в начале цикла, и другой, где условие проверяется в конце цикла.

Рекомендуемые статьи

Это руководство по VBA Do Loop. Здесь мы обсудим, как использовать Excel VBA Do Before Loop, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. VBA Пока Loop
  2. LOOKUP Формула в Excel
  3. Полное руководство по циклам VBA
  4. Таблица поиска в Excel

Категория: