Excel VBA робити до циклу

Робіть, поки цикл продовжить повторювати твердження, поки умова / критерії не стануть ПРАВИЛЬНИМ. Він буде виконувати твердження до тих пір, поки умови будуть ЛЮДИМИ. Як тільки умова / критерії стають ПРАВИЛЬНИМ, це припиняє цикл. Це може виглядати як протилежне циклу Do while, коли цикл працює до тих пір, поки критерії істинні, і припиняються, як тільки критерії ЛЖЕ.

Дивіться схему потоку нижче, де пояснюється функціонування циклу Do till:

Синтаксис Do Do Loop в Excel VBA

До тих пір, поки Loop не має двох видів синтаксису в Excel VBA.

Синтаксис 1:

 Робіть цикл, поки не буде (Умова) (Виконання заяви) 

Синтаксис 2:

 Зробити (заяви, що виконуються) Цикл до (Умова) 

Основна відмінність цих двох синтаксисів - це виконання. У першому синтаксисі цикл завжди перевірятиме, чи умова є "Вірно" чи "Неправдивим". Якщо вона помилкова, вона повторить цикл знову. Як тільки умова / критерії виконані, це припинить цикл. У цьому випадку існує ймовірність, що цикл припиняється під час першої самої ітерації (якщо умова є істинною). Отже, у цьому випадку ви не отримаєте жодного результату. Однак у другому синтаксисі цикл спочатку виконає оператори, а потім перевірить, чи справді це правда чи помилково. Якщо умова є помилковою, вона знову виконає той самий набір операторів і перевірить умову. Якщо сама перша ітерація дає умову як True, ця петля припиняється, але перед цим буде виконано оператор. У цьому випадку ми отримаємо принаймні одну ітерацію (Як нульовий вихід).

Нарешті, вихід двох кодів буде однаковим. Однак страта - це те, що відрізняє цих двох.

Приклад Excel VBA "До циклу"

Давайте подивимось приклади Do Do Loop в Excel VBA.

Ви можете завантажити цей шаблон VBA "До циклу Excel" тут - VBA "До циклу"

Приклад №1 - VBA робити до циклу, коли умови перевіряються на початку

Виконайте наведені нижче дії, щоб застосувати цикл "До тих пір" у Excel VBA.

Крок 1: Вставте новий модуль у Visual Basic Editor (VBE), щоб мати можливість писати код.

Крок 2. Визначте підпроцедуру, яка може зберігати макрокод, який ви будете писати.

Код:

 Sub Do_Until_Ex1 () Кінець Sub 

Крок 3: Визначте нову змінну "X" з типом даних як "Довгий". Ця змінна може бути використана як умова / критерій у циклі Do Do.

Код:

 Sub Do_Until_Ex1 () Dim X як довгий кінець Sub 

Крок 4: Встановіть початкове значення на 1 для змінної X.

Код:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Кінець Sub 

Крок 5. Почніть цикл із ключових слів "До тих пір".

Код:

 Sub Do_Until_Ex1 () Dim X як довгий X = 1 Do Do End Sub 

Крок 6: Вкажіть критерії як X = 11 у пункті "До". Це умова, яка дозволяє циклу розірватися, коли це правда. Це означає, що цикл буде працювати, поки значення X = 11. Як тільки значення для X дорівнює 11, цикл припиняється.

Код:

 Sub Do_Until_Ex1 () Dim X як довгий X = 1 Do до X = 11 End Sub 

Крок 7: Тепер використовуйте клітини VBA. Функція значення, щоб мати можливість додавати квадрат кожного числа до X під першим стовпцем.

Код:

 Sub Do_Until_Ex1 () Dim X як довгий X = 1 Do до X = 11 комірок (X, 1) .Value = X * X End Sub 

Крок 8: Знову нам потрібно встановити приріст у X на 1, так що кожного разу, коли цикл запускається і перевіряє стан, він перейде до наступного числа і збереже значення його квадрата у відповідній комірці до числа 11.

Код:

 Sub Do_Until_Ex1 () Dim X як довгий X = 1 Do до X = 11 комірок (X, 1) .Value = X * XX = X + 1 Кінець Sub 

Крок 9: Завершіть цю цикл "До тих пір", ввівши ключове слово "Петля" в кінці коду.

Код:

 Sub Do_Until_Ex1 () Dim X як довгий X = 1 Do до X = 11 комірок (X, 1) .Value = X * XX = X + 1 Кінець циклу Sub 

У цьому коді ми хотіли мати значення у квадраті для чисел, починаючи з 1 до 11 (Як тільки значення дорівнює 11, цикл припиняється). Під кожною коміркою листа excel (поки номер клітини 11) значення зберігатимуться. Збільшення 1 одиниці дозволяє число кожного разу збільшуватись на 1 у попередньому значенні X, а значення квадрата цього числа друкується у відповідній комірці. Наприклад, значення Squared for 3 буде надруковано під 3- ою коміркою активного листа excel. Цей цикл працює до тих пір, поки X не дорівнює 11. Отже, під коміркою A1 до комірки A10 ми отримуємо значення квадрата числа, починаючи від 1 до 10 (у циклі № 11 закінчується).

Крок 10: Натисніть кнопку «Виконати» або натисніть клавішу F5, щоб запустити цей код і побачити вихід.

Приклад №2 - Робіть цикл, поки не перевіряються умови в кінці циклу

Виконайте наведені нижче дії, щоб застосувати цикл "До тих пір" у Excel VBA.

Крок 1: Визначте нову процедуру під модулем VBE.

Код:

 Sub Do_Until_Ex2 () Кінець Sub 

Крок 2: Визначте змінну "Y" з типом даних як "Довгий". Ця змінна буде корисною в циклічних умовах.

Код:

 Sub Do_Until_Ex2 () Dim Y як довгий кінець Sub 

Крок 3: Встановіть початкове значення змінної "Y" як 1.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Кінець Sub 

Крок 4: Додайте умову, ввівши 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) .Value = Y * Y Кінець Sub 

Крок 6: Після кожної ітерації циклу ви хочете, щоб значення було збільшено на 1 одиницю, встановіть команду для цього в розділі Do.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Приклад 2"). Клітини (Y, 1) .Value = Y * YY = Y + 1 Кінець Sub 

Крок 7: Додайте завершальний виступ для цього циклу з ключовим словом як "Цикл".

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Приклад 2"). Клітини (Y, 1) .Value = Y * YY = Y + 1 Кінець петлі Sub 

Зачекай! Є щось більше. Потрібно додати критерії / умови до цього циклу, на цей раз після ключового слова Loop. Це дозволить компілятору перевірити стан в кінці циклу.

Крок 8: Додайте до Y = 11 як умову після циклу ключового слова.

Код:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Приклад 2"). Клітини (Y, 1) .Value = Y * YY = Y + 1 петля, поки Y = 11 Кінець Sub 

Крок 9: Запустіть цей код, натиснувши кнопку F5 або Запустити і подивіться магію під аркушем під назвою "Приклад 2".

Як працює цей код?

Система квадратикує до значення Y щоразу під циклом і зберігає її під другим стовпцем аркуша під назвою "Приклад 2" рядок за рядком. Після кожної ітерації поточне значення Y збільшується на 1 одиницю, а оновлене значення розміщується в квадраті та зберігається. Поки значення менше, ніж значення критерію (Y = 11), код буде виконувати квадрат і зберігати його. Як тільки компілятор значень досягає значення Y = 11, він припиняє виконання коду і припиняє те саме.

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

Що потрібно пам’ятати

  • VBA Do Пока - це точно зворотний випадок Excel VBA Do while. VBA Do Поки цикл працює до тих пір, поки умова буде ПРАВИЛЬНА. Після того, як умова ЛІЖНА, цикл Do while припиняється. З іншого боку, VBA Do Dok працює до тих пір, поки умова ЛІЖНА. Як тільки умова є ПРАВИЛЬНОЮ, цикл припиняється.
  • Він має два способи розгляду, один, коли стан перевіряється на початку циклу, а інший, коли стан перевіряється в кінці циклу.

Рекомендовані статті

Це посібник з VBA Do till Loop. Тут ми обговорюємо, як використовувати Excel VBA Do till Loop разом з деякими практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. VBA Хоча петля
  2. LOOKUP Формула в Excel
  3. Повні навчальні посібники з циклів VBA
  4. Таблиця пошуку в Excel

Категорія: