Excel VBA Faceți până la Buclă

Faceți până când bucla va continua să repete declarațiile până când condiția / criteriile devin ADEVĂRATE. Va executa declarațiile atât timp cât condițiile sunt FALSE. Imediat ce condiția / criteriile devin ADEVĂRATE, aceasta încheie bucla. Poate fi privit în mod opus față de bucla Do while, unde bucla se execută atâta timp cât criteriile sunt TRUE și se încheie imediat ce criteriile sunt FALSE.

Consultați diagrama de flux de mai jos care explică funcționarea buclei Do până la:

Sintaxa de a face până la bucla în Excel VBA

Faceți până când bucla are două tipuri de sintaxă în Excel VBA.

Sintaxa 1:

 Faceți până la (Condiție) (Declarații de executat) Buclă 

Sintaxa 2:

 Faceți (declarații care urmează să fie executate) Buclă până la (condiție) 

Diferența de bază între aceste două sintaxe este de execuție. În prima sintaxă, bucla va verifica întotdeauna dacă starea este adevărată sau falsă. Dacă este fals, se va repeta bucla din nou. Imediat ce condiția / criteriile sunt adevărate, aceasta va încheia bucla. În acest caz, există posibilitatea ca bucla să fie terminată la prima iterație în sine (dacă starea este adevărată). Prin urmare, nu veți obține nicio ieșire în acest caz. Cu toate acestea, în a doua sintaxă, bucla va executa inițial instrucțiunile și apoi va verifica dacă este adevărat sau fals. Dacă starea este falsă, va executa din nou același set de declarații și va verifica dacă este vorba de condiție. Dacă prima iterație în sine dă condiție ca True, această buclă se încheie, dar înainte de aceasta, va avea o instrucțiune executată. În acest caz, vom obține cel puțin o iterație (Ca ieșire nulă).

În cele din urmă, ieșirea celor două coduri va fi aceeași. Cu toate acestea, execuția este ceva care diferă aceste două.

Exemplu de Excel VBA Faceți până la Buclă

Haideți să vedem exemplele Do Do Loop în Excel VBA.

Puteți descărca acest șablon Excel VBA Do Up Loop aici - Șablonul VBA Do Until Loop Excel

Exemplul # 1 - VBA Faceți până la Buclă când sunt verificate condițiile la început

Urmați pașii de mai jos pentru a aplica bucla Do până în Excel VBA.

Pasul 1: Introduceți un nou modul sub Visual Basic Editor (VBE) pentru a putea scrie cod.

Pasul 2: Definiți o subprocedură care poate stoca codul macro pe care îl veți scrie.

Cod:

 Sub Do_Until_Ex1 () End Sub 

Pasul 3: Definiți o nouă variabilă „X” cu tipul de date drept „Long”. Această variabilă poate fi utilizată ca o condiție / criterii în bucla Do până când.

Cod:

 Sub Do_Until_Ex1 () Dim X Ca lungime finală Sub 

Pasul 4: Setați valoarea inițială la 1 pentru variabila X.

Cod:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Pasul 5: Începeți bucla cu cuvinte cheie Faceți până.

Cod:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do până la End Sub 

Pasul 6: Specificați criteriile ca X = 11 în secțiunea Do până. Aceasta este o condiție care permite bucla să se rupă atunci când este True. Înseamnă că bucla va funcționa până când valoarea X = 11. Imediat ce valoarea pentru X este egală cu 11, bucla se va încheia.

Cod:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do până X = 11 End Sub 

Pasul 7: Acum, utilizați celule VBA. Funcție valoare pentru a putea adăuga pătratul fiecărui număr până la X sub prima coloană.

Cod:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do până X = 11 Cell (X, 1) .Value = X * X End Sub 

Pasul 8: Din nou, trebuie să setăm creșterea în X cu 1, astfel încât de fiecare dată când rulează bucla și verifică starea, aceasta va trece la următorul număr și va stoca o valoare pătrată a acesteia în celula respectivă până la numărul 11.

Cod:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Până X = 11 Celule (X, 1) .Value = X * XX = X + 1 End Sub 

Pasul 9: Finalizați această buclă Faceți până introduceți cuvântul cheie „Loop” la sfârșitul codului.

Cod:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Până X = 11 Celule (X, 1) .Value = X * XX = X + 1 Loop End Sub 

În acest cod, am dorit să avem valori pătrate pentru numerele începând de la 1 până la 11 (De îndată ce o valoare este 11, bucla se încheie). Sub fiecare celulă a foii de excel (până la numărul celulei 11), valorile vor fi stocate. Creșterea cu 1 unitate permite creșterea unui număr de 1 în valoarea anterioară a lui X, iar valoarea pătrată a numărului respectiv este tipărită în celula respectivă. De exemplu, valoarea pătrată pentru 3 va fi tipărită în celula a 3 - a a foii active active. Această buclă rulează atât timp cât X nu este egal cu 11. Prin urmare, sub celula A1 până la celula A10, obținem valorile pătrate ale numărului începând de la 1 la 10 (la bucla numărul 11 ​​terminată).

Pasul 10: Apăsați butonul Run sau apăsați tasta F5 pentru a rula acest cod și a vedea ieșirea.

Exemplul # 2 - Faceți până la buclă când sunt verificate condițiile la sfârșitul buclei

Urmați pașii de mai jos pentru a aplica bucla Do până în Excel VBA.

Pasul 1: Definiți o nouă procedură sub modulul VBE.

Cod:

 Sub Do_Until_Ex2 () End Sub 

Pasul 2: Definiți o variabilă „Y” cu tipul de date drept „Long”. Această variabilă va fi utilă pentru a bucla condițiile.

Cod:

 Sub Do_Until_Ex2 () Dim Y Ca lung sfârșit Sub 

Pasul 3: Setați valoarea inițială a variabilei „Y” ca 1.

Cod:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 End Sub 

Pasul 4: Adăugare condiție Do prin tastarea Do pe linia următoare după ce ați setat valoarea inițială a lui Y la 1.

Cod:

 Sub Do_Until_Ex2 () Dim Y Atâta timp Y = 1 Do Sub End 

Pasul 5: Adăugați bucata de cod pe care doriți să o executați sub bucla Do. Aici vom lua același exemplu ca mai sus (ne va ajuta să cunoaștem, modul în care rezultatele sunt aceleași, dar compilările sunt diferite pentru două dintre aceste coduri).

Cod:

 Sub Do_Until_Ex2 () Dim Y Cât timp Y = 1 Foaie ("Exemplu 2"). Celule (Y, 1). Valoare = Y * Y Final Sub 

Pasul 6: După fiecare iterare a buclei, ați dorit ca valoarea să fie mărită cu 1 unitate, setați o comandă pentru asta în secțiunea Do.

Cod:

 Sub Do_Until_Ex2 () Dim Y Cât timp Y = 1 Foaie ("Exemplul 2"). Celule (Y, 1). Valor = Y * YY = Y + 1 Final Sub 

Pasul 7: Adăugați o declarație de închidere pentru această buclă cu un cuvânt cheie „Loop”.

Cod:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Do Sheets ("Exemplu 2"). Celule (Y, 1). Valor = Y * YY = Y + 1 Loop End Sub 

Stai așa! Mai este ceva. Trebuie să adăugați criteriile / condiția până la această buclă, de data aceasta după cuvântul cheie Loop. Acesta va permite compilatorului să verifice starea de la sfârșitul buclei.

Pasul 8: Adăugați până la Y = 11 ca condiție după Loop Keyword.

Cod:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Do Sheets ("Exemplu 2"). Celule (Y, 1). Valor = Y * YY = Y + 1 Loop până la Y = 11 End Sub 

Pasul 9: Rulați acest cod apăsând butonul F5 sau Run și vedeți magia sub foaia numită „Exemplul 2”.

Cum funcționează acest cod?

Sistemul pătrunde până la valoarea Y de fiecare dată sub buclă și îl stochează sub a doua coloană a foii denumită „Exemplul 2” rând cu rând. După fiecare iterație, valoarea curentă a lui Y este crescută cu 1 unitate și valoarea actualizată este pătrată și stocată. Atâta timp cât valoarea este mai mică decât valoarea criteriului (Y = 11), codul va face pătratul și îl va stoca. De îndată ce compilatorul de valori ajunge la valoarea Y = 11, acesta încetează să execute codul și să încheie același lucru.

Ambele coduri dau o ieșire similară, dar în mod logic există o diferență de compilare pentru ambele. În primul tip de cod, starea este verificată la începutul buclei și dacă este Falsă, atunci numai bucla începe să evalueze următoarea expresie. Cu toate acestea, în al doilea exemplu, codul începe să ruleze bucla și să execute instrucțiuni Do la început (stocarea valorilor într-o memorie tampon pentru instrucțiunile de execuție). La sfârșitul buclei, compilatorul vine cu un criteriu și verifică același lucru cu valoarea tamponului.

Lucruri de amintit

  • VBA Do Until este exact cazul invers al Excel VBA Do while. VBA Do În timp ce bucla se execută atâta timp cât starea este ADEVĂRAT. Odată ce starea este FALSE, bucla Faceți în timp ce se încheie. Pe de altă parte, VBA Do până rulează atât timp cât starea este FALSE. Imediat ce condiția este ADEVĂRAT, bucla se încheie.
  • Are două căi de procedură, una în care condiția este verificată la începutul buclei și alta în care condiția este verificată la sfârșitul buclei.

Articole recomandate

Acesta este un ghid pentru VBA Do Until Loop. Aici vom discuta despre cum să folosiți Excel VBA Do până la buclă, împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. VBA În timp ce buclă
  2. LOOKUP Formula în Excel
  3. Tutoriale complete pentru bucle VBA
  4. Tabelul de căutare în Excel

Categorie: