Bucle VBA - Lista Top 4 tipuri de bucle (cu exemple)

Bucle VBA Excel

Buclele sunt utilizate în mod obișnuit în toate limbajele de programare, unde există o anumită nevoie sau un anumit criteriu atunci când avem nevoie de un anumit cod pentru a rula o anumită dată când folosim bucle pentru acele coduri, acum există multe tipuri de bucle în VBA, cum ar fi Do în timp ce, Fă până, Pentru buclă și Pentru fiecare buclă, aceste bucle ajută codul să se execute până când se îndeplinește condiția.

Permiteți-mi să fac această afirmație chiar de la început. „Dacă doriți să masterizați în VBA, trebuie să completați master conceptul de bucle în macrocomenzile VBA.”

Bucla nu este altceva decât să treci printr-o gamă de celule, să treci printr-o serie de obiecte pentru a repeta aceeași sarcină pentru colectarea de celule sau obiecte. În loc să facem sarcina într-un set separat de linii de coduri folosind bucle, putem scurta lungimea codului la cel mai mic posibil.

Lista Top 4 tipuri de bucle VBA

  1. Pentru Next Loop
  2. Pentru fiecare buclă
  3. Faceți în timp ce buclați
  4. Fă până la buclă

Să vedem fiecare dintre aceste tipuri în detaliu.

Tastați nr. 1 - Pentru următoarea buclă

Pentru următoarea buclă ne permite să parcurgem gama de celule și să efectuăm aceeași sarcină pentru fiecare celulă specificată în buclă. Aici trebuie să spunem numărul de început și numărul de sfârșit.

Exemplu

De exemplu, dacă doriți să inserați numere de serie de la 1 la 10, mai jos este modul tradițional de introducere a numerelor de serie.

Număr de serie secundar ()

Interval („A1”). Valoare = 1
Interval („A2”). Valoare = 2
Interval („A3”). Valoare = 3
Interval („A4”). Valoare = 4
Interval („A5”). Valoare = 5
Interval („A6”). Valoare = 6
Interval („A7”). Valoare = 7
Interval („A8”). Valoare = 8
Interval („A9”). Valoare = 9
Interval („A10”). Valoare = 10

Sfârșitul Sub

Arată bine, nu-i așa? Dar problema de aici este doar de 10 ori de care avem nevoie pentru a efectua această sarcină. Dar imaginați-vă dacă doriți să inserați 100 sau 1000 de numere, puteți scrie codul 100 sau 1000 de linii. Este imposibil și de aceea frumusețea buclei For Next vine la îndemână.

Pasul 1: Deschideți macrocomanda și declarați variabila i ca Număr întreg.

Sub Insert_Serial_Number ()

Dim i Integer

Sfârșitul Sub

Pasul 2: Deschide acum butonul For Loop . Aici menționați începutul și sfârșitul buclei folosind variabila i.

Pasul 3: Acum scrieți codul pe care doriți să îl efectuați. Trebuie să inserăm numere de la 1 la 10 în celulele A1 până la A10. În loc să aplicați metoda Range, aplicați metoda Cells.

Se întreabă numărul rândului, deoarece am declarat deja variabila i ca număr întreg la început. Valoarea sa este 1. Așa că menționează că îmi place numărul rândului și 1 ca număr coloană.

Acum, valoarea valorii curente a celulei ar trebui să fie una, în loc să menționeze numărul 1 menționează i ca valoare. Deoarece de fiecare dată când rulează bucla, valoarea i va crește cu 1.

Acum apăsați tasta F8 pentru a intra într-o rând pe rând. Apăsați F8 până când ajunge la bucla For.

Această culoare galbenă indică faptul că linia de cod selectată este pe cale să ruleze. Plasați un cursor pe I și va arăta valoarea zero.

Acum apăsați încă o dată tasta F8 și plasați un cursor pe i și acum valoarea este 1.

Deci, valorile lui i peste tot sunt acum egale cu 1. „ Celule (I, 1) .value = I” înseamnă celule (1, 1) .value = 1.

Apăsați tasta F8 și vedeți valoarea din celula A1. Trebuie să vedeți 1 în celula A1.

Acum, dacă apăsați tasta F8, aceasta va reveni la bucla For încă o dată, deoarece limita finală a variabilei i este 10. De data aceasta valoarea I va fi 2.

Pentru următoarea buclă va rula de 10 ori și va introduce numere de serie de la 1 la 10.

Tipul # 2 - Pentru fiecare buclă

Fiecare buclă din VBA este pentru buclă printr-o colecție de obiecte. Pentru următoarea buclă bucle prin celule și efectuați sarcina, și Pentru fiecare buclă bucle prin obiecte precum foi de lucru, diagrame, cărți de lucru, forme.

Folosind această buclă, putem parcurge toate foile de lucru și putem efectua unele sarcini. De exemplu, puteți parcurge toate foile de lucru pentru a ascunde și a afișa foile de lucru.

Exemplul nr. 1

Dacă doriți să ascundeți toate foile de lucru, cu excepția foii la care lucrați, cum o veți face? Dacă aveți 20 de foi în registrul de lucru, este un proces care necesită mult timp. Dar cu bucla FOR EACH, putem realiza această sarcină.

Am 5 foi și vreau să ascund toate foile, cu excepția fișei „Principal” de sub cod care ar face sarcina pentru mine.

Sub To_Hide_All_Sheet ()

Dim Ws Ca foaie de lucru

Pentru fiecare W din ActiveWorkbook.Wheksheets

Dacă Ws.Name „Main” atunci
Ws.Visible = xlSheetVeryHidden
End If

Următorul Ws

Sfârșitul Sub

Exemplul nr. 2

Dacă doriți să afișați toate foile ascunse, atunci codul de mai jos va face treaba pentru dvs.

Sub To_UnHide_Specific_Sheet ()

Dim Ws Ca foaie de lucru

Pentru fiecare W din ActiveWorkbook.Wheksheets

Ws.Visible = xlSheetVisible

Următorul Ws

Sfârșitul Sub

Tastați # 3 - Faceți în timp ce buclați

Bucla Do While execută sarcina în timp ce condiția dată este ADEVĂRATĂ și odată ce condiția devine FALSĂ, aceasta se va opri din buclă. Spre deosebire de celelalte două bucle, Do While testează starea la sfârșitul buclei, nu la început.

Vă voi arăta exemplul inserării numerelor de serie cu bucla Do While.

Sub Do_While_Example ()

Dim i Integer

i = 1
Faceți în timp ce i <11
celule (i, 1). Valoare = i
i = i + 1
buclă

Sfârșitul Sub

Bucla de mai sus va rula în timp ce i este mai mică de 11 și continuă să introducă numerele de serie. În momentul în care voi deveni mai mare de 11, se va opri din buclă.

Tastați # 4 - Faceți până la buclă

Spre deosebire de bucla Do While, bucla Do Until nu rulează în timp ce condiția este ADEVĂRATĂ; mai degrabă, se bucură până când starea este FALSĂ. De exemplu, uitați-vă la codul de mai jos.

Sub Do_Until_Example ()

Dim i Integer

i = 1
Faceți până când i = 11
celule (i, 1). Valoare = i
i = i + 1
buclă

Sfârșitul Sub

Singura diferență dintre bucla Do While & Do Until este operatorul pe care îl specificăm. În Do, în timp ce am menționat rularea buclei în timp ce i este mai mică de (<), 11, dar în bucla do until, am menționat să rulăm bucla Până când i este egal cu (=) la 11.

Lucruri de amintit

  • Există un exemplu de buclă VBA Excel mai avansat, dar le vom acoperi pe fiecare dintre ele într-un articol separat în detaliu.
  • Fiecare buclă este pentru variabilele obiect.
  • Deși Do While & Do Until arată la fel, menționarea stării este foarte importantă.
  • Buclele sunt concepte foarte importante.

Articole interesante...