Tutorial pe Excel VBA bucle în VBA

Există situații când pe codul VBA necesare pentru a face un număr de ori același set de acțiuni (de exemplu, repetat de mai multe ori în același bloc de cod). Acest lucru se poate face folosind cicluri VBA.

Pentru VBA cicluri includ:

Mai jos este o privire detaliată la fiecare dintre aceste cicluri.

«Pentru» operator de ciclu în Visual Basic

Pentru structura ciclului operatorului în Visual Basic pot fi organizate într-una din cele două forme: ca pentru buclă. Urmatorul ciclu sau pentru fiecare.

Ciclul «Pentru ... Urmator»

Pentru buclă. Următoarea utilizează o variabilă care ia secvențial valori dintr-un interval predeterminat. Cu fiecare schimbare a valorii acțiunilor variabile sunt efectuate, prizonierii în bucla. Acest lucru este ușor de înțeles dintr-un exemplu simplu:

In acest simplu pentru buclă. În continuare utilizați o variabilă i. care primește secvențial valorile 1, 2, 3, ... 10, iar fiecare dintre aceste valori se realizează codul VBA, localizat în interiorul buclei. Astfel, ciclul activ adaugă elementele de matrice iArray totală variabilă.

În exemplul, ciclul incrementeaza de mai sus nu este specificat, astfel încât pentru creșterea incrementală a variabilei i de la 1 la 10, incrementul implicit 1. Cu toate acestea, în unele cazuri, pe care doriți să utilizați alte valori pentru ciclul de creștere. Acest lucru se poate face utilizând pasul de cuvinte cheie. așa cum se arată în exemplul următor simplu.

Deoarece în exemplul dat increment egal cu 0,1 date mai sus. variabila dTotal pentru fiecare ciclu de repetiție ia valorile 0,0, 0,1, 0,2, 0,3, ... 9,9, 10,0.

Pentru a determina în etapa ciclului VBA poate utiliza o valoare negativă, de exemplu, astfel:

Există incrementa egală cu -1. Prin urmare, variabila i cu fiecare ciclu de repetiție presupune valorile 10, 9, 8, ... 1.

Ciclul «Pentru fiecare»

Pentru fiecare buclă este similar cu ciclul de. În continuare. ci pentru a sorta o secvență de valori pentru variabila-counter, bucla Pentru fiecare efectuează un set de acțiuni pentru fiecare obiect din grup obiect menționat. Următorul exemplu, folosind pentru fiecare buclă enumără toate foile din registrul de lucru curent, Excel:

întrerupe ciclul operator de «ieșire pentru»

Exit pentru declarația este folosită pentru a întrerupe ciclul. De îndată ce codul îndeplinește acest operator, programul completează executarea buclei și continuă operatorilor care sunt în codul imediat după ciclul. Acest lucru poate fi utilizat, de exemplu, pentru a căuta o anumită valoare în matrice. Pentru acest lucru poate fi văzut, fiecare element al matricei folosind o buclă. După ce elementul dorit este găsit, nu este necesar pentru a vizualiza restul - ciclul este anulată.

Exit Aplicație pentru declarația este demonstrată în exemplul următor. Aici, ciclul trece prin 100 de intrări matrice și compara fiecare cu valoarea variabilei DVal. Dacă este găsită o potrivire, ciclul este întrerupt:

Ciclul «face în timp ce» în Visual Basic

Face în timp ce bucla execută un bloc de cod, atâta timp cât îndepliniți condiția specificată. În continuare, un exemplu procedura Sub. în care efectuați cu ieșire secvențial numărul ciclului Fibonacci care nu depășește 1000:

În acest exemplu, condiția iFib_Next <1000 проверяется в начале цикла. Поэтому если бы первое значение iFib_Next было бы больше 1000, то цикл бы не выполнялся ни разу.

Un alt mod de a pune în aplicare o buclă de făcut în timp ce - a pus condiție nu este la începutul și la sfârșitul ciclului. În acest caz, ciclul va fi executat cel puțin o dată, indiferent dacă condiția este îndeplinită.

Schematic, o face în timp ce bucla pentru a verifica condițiile în cele din urmă va arata astfel:

Ciclul «Do» Până în Visual Basic

Do Până la bucla este foarte similar cu buclă face în timp. un bloc de cod în corpul buclei este executat în mod repetat, atâta timp cât o condiție specificată este îndeplinită (rezultatul unei expresie condițională este adevărată). Următoarea procedură folosind ciclul Sub Nu Până când valorile extrase din toate celulele din coloana A la foaia de lucru până când coloana este întâlnită celulă goală:

In exemplul de mai sus condiție isEmpty (Cells (iRow, 1)) stocate la inceputul structurii Do Pana. prin urmare, bucla va fi executat cel puțin o dată, în cazul în care prima celulă nu este încă luată.

Cu toate acestea, așa cum sa arătat în exemplele Do In timp ce bucla. În unele situații trebuie să acordați ciclu a fost efectuat cel puțin o dată, indiferent de rezultatul inițial al expresiei condiționate. În acest caz, expresia condițională trebuie plasată la sfârșitul unui ciclu, astfel:

articole similare