Buclă Excel VBA Do
Bucla VBA Do , este un set de instrucțiuni din cadrul unei subproceduri în care codul rulează de un anumit număr de ori până când se ating criteriile dorite sau se depășește orice prag sau este sigur să se spună asta până când se obțin datele necesare.
În timp ce bucla funcționează pe rezultate logice, continuă să ruleze bucla înainte și înapoi în timp ce condiția de testare este ADEVĂRATĂ. În momentul în care condiția testului revine FALS, va ieși din buclă. Buclele sunt inima oricărui limbaj de programare. În articolele noastre, demonstrăm importanța buclelor și modalitățile de codare a acestora. În acest articol, vă arătăm cum să utilizați Do Loop.

Cum se folosește VBA Do Loop?
Exemplul # 1 - Starea la sfârșitul buclei
Am văzut testul de stare la începutul buclei. În codul anterior, am văzut exemplul de inserare a numerelor de serie, iar codul a fost așa.
Cod:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Celule (k, 1). Valoare = kk = k + 1 Loop End Sub

Acum puteți rula acest cod manual sau prin intermediul tastei de comandă rapidă F5 pentru a vedea rezultatul.
Acest cod va introduce numere de serie de la 1 la 10.

Dar putem testa și starea și la sfârșitul buclei. Trebuie să folosim cuvântul „în timp ce” și testul de stare la sfârșitul cuvântului Buclă.
Singura modificare aici este aplicarea testului la final, așa cum se arată mai jos.
Cod:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cell (k, 1). Valoare = kk = k + 1 Bucla În timp ce k <= 10 End Sub

Astfel, putem testa starea și la sfârșitul instrucțiunii buclă.
Notă: Codul va rula, apoi testează condiția pentru a reveni la buclă încă o dată sau nu. Aceasta înseamnă că va rula mai întâi și apoi va încerca situația mai târziu.Exemplul # 2 - Suma folosind funcția Do While Loop
Să presupunem că aveți date despre vânzări și costuri în foaia dvs. Excel. Mai jos este setul de date fictive pe care le-am creat pentru calcul.

Acum trebuie să obținem valoarea profitului din coloana C. Am creat deja un cod care va face o treabă pentru mine.
Cod:
Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp). Row Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + Celule (k, 2) k = k + 1 Loop End Sub

LR = Celule (Rows.Count, 1). End (xlUp). Row
Acest cod va identifica ultimul rând utilizat în prima coloană. Acest lucru face ca codul să fie dinamic, deoarece dacă există orice adăugare sau ștergere a datelor, acest lucru va regla timpul de secvență pentru a rula bucla.
k = 2
Vrem ca calculul să se facă începând cu a doua celulă. Deci valoarea inițială a lui k este 2.
Faceți În timp ce k <= LR
După cum am spus, LR va găsi ultimul rând folosit în prima coloană. Aceasta înseamnă că bucla va rula în timp ce k este <= până la valoarea LR. În acest caz, am 10 rânduri, deci LR = 10.
Bucla va rula până când valoarea k atinge 10. Odată ce suma a trecut de 10 bucle, se va opri.
Acum puteți rula acest cod folosind comanda rapidă F5 sau manual pentru a vedea rezultatul.

Exemplul # 3 - Declarație de ieșire în Bucla Do While
De asemenea, putem ieși din buclă în timp ce condiția este încă doar ADEVĂRATĂ. De exemplu, luați și datele de mai sus aici.

Să presupunem că nu doriți să faceți calculul complet, dar trebuie doar să calculați primele 5 rânduri de profit și, de îndată ce ajunge la al 6- lea rând, doriți să ieșiți din buclă. Acest lucru se poate face folosind funcția IF în excel. Codul de mai jos include declarația exit.
Cod:
Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp). Row Do While k 6 Apoi Exit Do Cells (k, 3). Valoare = Cells ( k, 1) + Celule (k, 2) k = k + 1 Bucl End Sub

„Dacă k> 6, apoi ieșiți din„
Această linie de cod va iniția procesul de ieșire. Bucla va continua să ruleze până când valoarea lui k ajunge la 6. În momentul în care depășește 6, dacă condiția va executa codul, „Exit Do”.
Acum puteți rula acest cod folosind comanda rapidă F5 sau manual pentru a vedea rezultatul.

Lucruri de amintit
- Do. Bucla funcționează pe rezultate logice și continuă să ruleze bucla înainte și înapoi în timp ce condiția de testare este ADEVĂRATĂ. În momentul în care condiția testului revine FALS, va ieși din buclă.
- Putem ieși din buclă în orice moment, ajustând încă un test logic în interiorul cercului folosind funcția IF.
- Dacă starea sau testul este furnizat în partea de sus a buclei, acesta va verifica mai întâi testul și va progresa în continuare numai dacă este ADEVĂRAT.
- Dacă condiția sau testul sunt furnizate la sfârșitul buclei, va executa mai întâi blocul de cod din instrucțiunea buclă și, în viitor, va testa condiția pentru a decide dacă să revină pentru a rula bucla încă o dată sau nu.