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. Можете да разгледате и другите ни предложени статии -
- Как да използваме FIND функцията в Excel?
- Как да използвате функцията VBA TRIM?
- VBA масиви | Пълен урок
- Как да използвате VBA Select Case?