VBA Докато цикъл

VBA Въпреки че Loop е важна и мощна концепция, която може би сте виждали в повечето езици за програмиране. Ако овладеете тази концепция под VBA, ще можете да подготвите мощни скриптове, които работят с данни от електронни таблици по съвсем различни и удобни начини. В тази статия се пригответе да изследвате света на различните, докато циклите заедно с множество примери, идващи за вашата помощ.

Цел на цикъла "Докато" е да повтори определен блок от изявления, при условие че е изпълнено условието. По-точно, докато цикълът повтаря съответното изявление, докато условието е True. След като условието стане невярно (не отговаря), цикълът се прекратява.

По принцип има два типа цикъл в Microsoft Excel VBA:

  • Цикъла на VBA, докато Wend
  • VBA Do-while Loop

VBA while-Wend Loop съществува, за да направи кода съвместим с по-стара версия на кодове. VBA Do-Iako е актуализираната версия на while цикъл, която е по-гъвкава и структурирана в сравнение с предишната и се препоръчва да се използва от общността на Microsoft.

За всеки случай се чудите какво означава Венд, това е кратка форма на „Докато край“ и работи като същата.

Примери за VBA докато цикъл

Нека се потопим дълбоко в стъпка по стъпка ръководство на различни видове VBA, докато Loops.

Можете да изтеглите този шаблон на VBA, докато Loop Excel тук - VBA, докато шаблон за Excel Excel

Пример №1

Цикъла на VBA, докато Wend

Синтаксис:

Нека вземем пример, за да видим това по-добре.

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

Код:

 Sub докатоEx1 () Край Sub 

  • Задайте две променливи номер едно и сума на нула.

Код:

 Sub докатоEx1 () Брой = 1 Сума = 0 Край Sub 

  • Задайте условие за променлива номер.

Код:

 Sub докатоEx1 () Брой = 1 Сума = 0 Докато число <= 10 Край Под 

  • Добавете оператори, които да бъдат изпълнени за това условие.

Код:

 Sub докатоEx1 () номер = 1 сума = 0 докато число <= 10 сума = сума + номер номер = число + 1 край под 

  • Добавете Debug.Print Sum, така че сумата от първите 10 естествени числа да може да бъде отпечатана едно по едно в незабавен прозорец.

Код:

 Sub DokEx1 () Число = 1 Сума = 0 Докато число <= 10 Сума = Сума + Число номер = Число + 1 Отстраняване на печата Сума Край Под 

  • И накрая, завършете цикъла на WHO с израза Wend.

Код:

 Sub DokEx1 () Число = 1 Сума = 0 Докато число <= 10 Сума = Сума + Число номер = Число + 1 Debug.Print Sum Wend End Sub 

  • Натиснете F5 или Run Button, за да стартирате този код и да видите изхода.

В този код променливата на сумата е зададена на нула. Така всеки път, когато числото се увеличава с 1, докато достигне 10 (използвайки цикъл, докато), променливата на сумата ще добави предишната сума с текущото число и ще я покаже под реда на незабавния прозорец по ред или поетапна сума, която можете да кажете.

Пример №2

VBA Do-while Loop

Lo-Do Loop Когато условието се проверява преди да започне цикълът

Има два начина, по които може да се изпълни цикълът.

  • Можете да добавите условие, преди цикълът да започне (Това е същото като цикълът на while-Wend). Тук няма да има повторение на цикъла, ако състоянието се провали за първи път.
  • Можете да добавите условие в последния цикъл, за да проверите. В този случай ще има поне една итерация на цикъла, преди условието да се провали.

Синтаксис:

Нека вземем един пример, за да направим нещата по-ясни.

  • Поставете нов модул и дефинирайте нова под-процедура, за да определите макрос.

Код:

 Sub DokEx2 () Край Sub 

  • Определете нова променлива I като цяло число. И инициира стойността му на 1.

Код:

 Sub докатоEx2 () Dim i Dim Integer i = 1 End Sub 

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

Код:

 Sub докатоEx2 () Dim i Dim Integer i = 1 Do докато i <= 10 End Sub 

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

Код:

 Sub докатоEx2 () Dim i Dim Integer i = 1 Do докато i <= 10 клетки (i, 1) .Value = i * i End Sub 

Това изречение позволява i-тия ред на първата колона да съхранява квадратната стойност на числата.

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

Код:

 Sub докатоEx2 () Dim i Dim Integer i = 1 Do докато i <= 10 клетки (i, 1) .Value = 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

Lo-Do Loop Когато условието се проверява в края на цикъла

Синтаксис:

Нека видим пример, за да видим примката по-добър начин.

  • Поставете нов модул и дефинирайте нова под-процедура за съхраняване на макрос.

Код:

 Sub докатоEx3 () Край Sub 

  • Определете ново цяло число i същото като в предишния пример и му присвойте начална стойност.

Код:

 Sub докатоEx3 () Dim i Dim Integer i = 1 End Sub 

  • Използвайте условие "Do", за да добавите операторите, които да бъдат изпълнени, стига условието да е вярно.

Код:

 Sub докатоEx3 () Dim i Dim Integer i = 1 Do клетки (i, 2) .Value = i * ii = i + 1 End Sub 

Препоръчва се използването на бяло пространство (клавиш Tab) като отстъп, показан в горния код, което позволява на кода да работи безпроблемно и също така определя добър структурен формат на кода.

  • Използвайте Loop, докато добавите условие, което трябва да бъде проверено за всеки оператор, който да бъде изпълнен.

Код:

 Sub докатоEx3 () Dim i Dim Integer i = 1 Направете клетки (i, 2) .Value = i * ii = i + 1 Loop Докато i <= 10 End Sub 

  • Стартирайте този код, като натиснете F5 или Run бутона ръчно и вижте изхода.

Ще видите изхода, както е показано на фигурата по-горе.

Как работи този код в края на седмицата?

Системата умножава стойността на i (започвайки от 1) към себе си и съхранява във втората колона (клетки (i, 2)) за всеки ред една по една. Кодът спира да се изпълни веднага щом стойността на променливата i достигне 10. Изходът може да е същият, което логично означава, че и двата кода работят като еднакви. Но основната разлика е в съставянето на кода. В последния пример състоянието вече беше налице и системата знаеше до кой номер трябва да отиде. В този код обаче системата не знае за състоянието в момента на изпълнение на оператори и изпълнява итерацията една по една. Докато условието е невярно, кодът спира да се изпълнява.

Неща, които трябва да запомните за VBA докато цикъл

  • Цикълът на while-Wend е остарял и има ли просто да е съвместим с по-старите версии на кодовете. Трябва вместо това да използвате цикъл Do-while.
  • Цикълът Do-while е по-гъвкав и добре структуриран в сравнение с контура на while-Wend.
  • Цикълът Do-while може да се използва по два начина, където в един случай можете първо да добавите условие, което да бъде проверено, а след това да добавите оператори, отговарящи на условието. По друг начин можете първо да добавите оператори и по-късно да добавите условието, което трябва да бъде проверено.
  • Вдлъбнатините се препоръчва да се използват в контури, така че кодът да бъде по-динамичен и по-лесен за четене.

Препоръчителни статии

Това е ръководство за VBA Do while Loop. Тук обсъдихме как да използваме Excel VBA Do while Loop, заедно с някои практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

  1. Как да използваме FIND функцията в Excel?
  2. Как да използвате функцията VBA TRIM?
  3. VBA масиви | Пълен урок
  4. Как да използвате VBA Select Case?

Категория: