VBA Пока Loop

VBA While Loop - это важная и мощная концепция, которую вы, возможно, видели в большинстве языков программирования. Если вы овладеете этой концепцией в VBA, вы сможете подготовить мощные сценарии, которые работают с данными электронных таблиц совершенно разными и удобными способами. В этой статье вы будете готовы исследовать мир различных циклов while, а также множество примеров для вашей помощи.

Целью цикла while является повторение определенного блока инструкций при условии выполнения условия. Точнее, в то время как цикл повторяет соответствующий оператор, в то время как условие истинно. Как только условие становится ложным (не соответствует), цикл завершается сам.

В Microsoft Excel VBA существует два типа цикла while:

  • VBA Пока-Wend Loop
  • VBA Do-While Loop

VBA While-Wend Loop существует, чтобы сделать код совместимым со старой версией кодов. VBA Do-While - это обновленная версия цикла while, которая является более гибкой и структурированной по сравнению с предыдущей и рекомендуется для использования сообществом Microsoft.

На всякий случай вам интересно, что означает Венд, это короткая форма «В то время как Конец» и работает так же.

Примеры VBA Пока Loop

Давайте углубимся в пошаговое руководство по различным типам VBA While Loops.

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

Пример № 1

VBA Пока-Wend Loop

Синтаксис:

Давайте рассмотрим пример, чтобы увидеть это лучше.

  • Определите подпроцедуру для создания макроса в новом модуле.

Код:

 Sub WhileEx1 () End Sub 

  • Установите две переменные Number в One и Sum в ноль.

Код:

 Sub WhileEx1 () Number = 1 Sum = 0 End Sub 

  • Установите условие while для числовой переменной.

Код:

 Sub WhileEx1 () Number = 1 Sum = 0 Пока Number <= 10 End Sub 

  • Добавьте операторы, которые должны быть выполнены для этого условия while.

Код:

 Sub WhileEx1 () Число = 1 Сумма = 0, В то время как Число <= 10 Сумма = Сумма + Число Число = Число + 1 Конец Sub 

  • Добавьте Debug.Print Sum, чтобы сумма первых 10 натуральных чисел могла быть напечатана одна за другой в Immediate Window.

Код:

 Sub WhileEx1 () Number = 1 Sum = 0, в то время как Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum End Sub 

  • Наконец, завершите цикл While оператором Wend.

Код:

 Sub WhileEx1 () Number = 1 Sum = 0, в то время как Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum Wend End Sub 

  • Нажмите F5 или кнопку Run, чтобы запустить этот код и увидеть результат.

В этом коде переменная суммы установлена ​​в ноль. Таким образом, каждый раз, когда число увеличивается на 1, пока не достигнет 10 (используя цикл while), переменная sum будет добавлять предыдущую сумму к текущему числу и отображать ее в строке Immediate Window по строкам или по ступенчатой ​​сумме, которую вы можете сказать.

Пример № 2

VBA Do-While Loop

Цикл Do-While, когда проверяется условие перед началом цикла

Цикл do while может быть выполнен двумя способами.

  • Вы можете добавить условие перед началом цикла (это то же самое, что и цикл While-Wend). Здесь не было бы итерации цикла, если условие не выполняется в первый раз.
  • Вы можете добавить условие в конце цикла для проверки. В этом случае произойдет хотя бы одна итерация цикла, прежде чем условие не будет выполнено.

Синтаксис:

Давайте возьмем один пример, чтобы прояснить ситуацию.

  • Вставьте новый модуль и определите новую подпроцедуру для определения макроса.

Код:

 Sub WhileEx2 () End Sub 

  • Определите новую переменную I как целое число. И начать его значение до 1.

Код:

 Sub WhileEx2 () Dim i Dim Integer i = 1 End Sub 

  • Используйте Do-While, чтобы добавить условие в начале цикла.

Код:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Сделать пока i <= 10 End Sub 

  • Добавьте операторы, которые должны быть выполнены, если условие выполнено. Добавьте приведенную ниже строку кода в макрос.

Код:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do Пока i <= 10 ячеек (i, 1). Значение = i * i End Sub 

Этот оператор позволяет в i-й строке первого столбца хранить значение чисел в квадрате.

  • Добавьте еще один оператор, который позволяет увеличивать i на 1 на каждой итерации цикла.

Код:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 Ячейки (i, 1). Значение = i * ii = i + 1 Loop End Sub 

  • Завершите этот цикл, добавив оператор Loop в конец вашего кода.

Давайте посмотрим на обход этого кода:

Для значений i от 1 (изначально i = 1) до 10 он вычисляет i * i (т. Е. Квадратное значение для каждого целого значения i) и вводит его в строки 1–10 столбца 1 (т. Е. Столбец A) соответственно, Выходные данные - не что иное, как квадратные значения целых чисел от 1 до 10.

  • Запустите этот код, нажав F5 или кнопку Run, и посмотрите результат.

Вы можете видеть квадраты натуральных чисел от 1 до 10, которые хранятся в каждой ячейке отдельно от столбца А.

Пример № 3

Цикл Do-While, когда условие проверяется в конце цикла

Синтаксис:

Давайте посмотрим на пример, чтобы увидеть цикл лучше.

  • Вставьте новый модуль и определите новую подпроцедуру для хранения макроса.

Код:

 Sub WhileEx3 () End Sub 

  • Определите новое целое число i, как в предыдущем примере, и присвойте ему начальное значение.

Код:

 Sub WhileEx3 () Dim i Dim Integer i = 1 End Sub 

  • Используйте условие Do, чтобы добавить операторы, которые должны быть выполнены, если условие выполняется.

Код:

 Sub ПокаEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Значение = i * ii = i + 1 End Sub 

Рекомендуется использовать пробел (клавиша Tab) в качестве отступа, показанного в приведенном выше коде, что позволяет коду работать без сбоев, а также определяет хороший формат структуры кода.

  • Используйте Loop while, чтобы добавить условие, которое будет проверяться для каждого выполняемого оператора.

Код:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Значение = i * ii = i + 1 Цикл, пока i <= 10 End Sub 

  • Запустите этот код, нажав F5 или кнопку Run вручную и посмотрите результат.

Вы увидите результат, как показано на рисунке выше.

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

Система умножает значение i (начиная с 1) на себя и сохраняет во втором столбце (ячейки (i, 2)) для каждой строки один за другим. Код прекращает выполнение, как только значение переменной i достигает 10. Выходные данные могут быть одинаковыми, что логически означает, что оба кода работают одинаково. Но главное отличие заключается в компиляции кода. В последнем примере условие уже было, и система знала, до какого числа оно должно идти. Однако в этом коде система не знает об этом условии во время выполнения операторов и выполняет итерацию одну за другой. Пока условие ложно, код перестал выполняться.

Что нужно помнить о VBA While Loop

  • Цикл While-Wend устарел и должен быть совместим со старыми версиями кодов. Вместо этого вы должны использовать цикл Do-While.
  • Цикл Do-While более гибкий и хорошо структурированный по сравнению с циклом While-Wend.
  • Цикл Do-while можно использовать двумя способами, где в одном случае вы можете сначала добавить условие для проверки, а затем добавить операторы, удовлетворяющие условию. По-другому, вы можете сначала добавить операторы, а затем добавить проверяемое условие.
  • Отступы рекомендуется использовать в циклах, чтобы код мог быть более динамичным и легким для чтения.

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

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

  1. Как использовать функцию поиска в Excel?
  2. Как использовать функцию VBA TRIM?
  3. VBA Arrays | Полный учебник
  4. Как использовать VBA Select Case?

Категория: