Pentru următoarea buclă în Excel VBA - Un ghid pentru începători cu exemple

În VBA, buclarea este utilizată atunci când trebuie să efectuați aceeași sarcină de mai multe ori până când este îndeplinită o condiție (sau până când o condiție este adevărată).

În acest tutorial, veți afla cum să utilizați bucla următoare în Excel VBA.

Dacă sunteți interesat să învățați VBA într-un mod ușor, consultați Instruire online VBA Excel.

Utilizarea buclei FOR NEXT în Excel VBA

Bucla „Pentru următorul” funcționează executând bucla de numărul specificat de ori.

De exemplu, dacă vă cer să adăugați numerele întregi de la 1 la 10 manual, veți adăuga primele două numere, apoi adăugați al treilea număr la rezultat, apoi adăugați al patrulea număr la rezultat, așa mai departe …

Nu-i așa?

Aceeași logică este utilizată în bucla For Next din VBA.

Specificați de câte ori doriți să ruleze bucla și, de asemenea, specificați ce doriți să faceți codul de fiecare dată când se rulează bucla.

Iată formatul buclei For Next pe care trebuie să îl utilizați în VBA pentru a adăuga primele 10 numere întregi.

Pentru i = 1 până la 10 [adăugați ith întregul pozitiv la rezultat] Următorul i

Acum să aruncăm o privire la câteva exemple despre cum să utilizați bucla Pentru următorul.

Exemplul 1: Adăugarea primelor 10 numere întregi pozitive

Mai jos este codul care va adăuga primele 10 numere întregi pozitive folosind o buclă For Next. Apoi va afișa o casetă de mesaj care arată suma acestor numere.

Numere adunări secundare () Număr total ca număr întreg Dim Număr ca număr întreg = 0 Pentru numărare = 1 până la 10 Total = Total + Numărare Număr următor MsgBox Total sfârșit Sub

În acest cod, valoarea Total este setată la 0 înainte de a intra în bucla Pentru următorul.

Odată ce intră în buclă, deține valoarea totală după fiecare buclă. Deci, după prima buclă, când Contorul este 1, valoarea „Total” devine 1, iar după a doua buclă devine 3 (1 + 2) și așa mai departe.

Și, în sfârșit, când bucla se termină și când Total are suma primelor 10 numere întregi pozitive, un MsgBox afișează pur și simplu rezultatul într-o casetă de mesaj.

Faceți clic aici pentru a descărca fișierul de exemplu

Exemplul 2: Adăugarea primelor 5 numere întregi chiar pozitive

Pentru a însuma primele cinci numere întregi pozitive (adică 2,4,6,8 și 10), aveți nevoie de un cod similar cu o condiție pentru a lua în considerare doar numerele pare și a ignora numerele impare.

Iată un cod care o va face:

Sub AddEvenNumbers () Dim Total ca întreg Numerat Numărat ca număr întreg = 0 Pentru numărare = 2 până la 10 Pasul 2 Total = Total + Numărare Număr următor MsgBox Total sfârșit Sub

Rețineți că am început valoarea Count din 2 și am folosit și Pasul 2 în sintaxa For.

Pasul 2 va spune codului să incrementeze valoarea „Count” cu 2 de fiecare dată când se rulează bucla. Deci, valoarea Count începe de la 2 și apoi devine 4, 6, 8 și 10 pe măsură ce are loc buclarea.

NOTĂ: O altă modalitate de a face acest lucru ar putea fi rularea buclei de la 1 la 10 și verificarea în cadrul buclei dacă numărul este par sau impar. Cu toate acestea, utilizarea Step, în acest caz, este un mod mai eficient, deoarece nu necesită ca bucla să ruleze de 10 ori, ci doar de 5 ori.

Faceți clic aici pentru a descărca fișierul de exemplu.

Exemplul 3: Obțineți partea numerică dintr-un șir alfanumeric

Bucla „Pentru următorul” poate fi utilizată și pentru a parcurge fiecare caracter dintr-un șir.

De exemplu, dacă aveți o listă de șiruri alfanumerice, puteți utiliza bucla Pentru următorul pentru a extrage numerele din aceasta (așa cum se arată mai jos):

Iată un cod care creează o funcție personalizată în VBA care poate fi utilizată ca orice altă funcție de foaie de lucru.

Se extrage partea numerică din șirul alfanumeric.

Funcția GETNUMERIC (Cl As Range) Dim i As Integer Dim Result as Long For i = 1 To Len (Cl) If IsNumeric (Mid (Cl, i, 1)) Then Result = Result & Mid (Cl, i, 1) End Dacă Următorul i GetNumeric = Funcția de finalizare a rezultatului

În acest cod, de câte ori rulează bucla depinde de lungimea șirului alfanumeric (folosește funcția LEN pentru a găsi lungimea șirului).

Trebuie să puneți această funcție în fereastra de cod a modulului și apoi o puteți folosi ca orice altă funcție de foaie de lucru.

Faceți clic aici pentru a descărca fișierul de exemplu.

Exemplul 4: Obținerea numerelor aleatorii în intervalul selectat

Să presupunem că doriți să introduceți rapid numere aleatorii în celulele selectate, aici codul care o va face.

Sub RandomNumbers () Dim MyRange as Range Dim i As Integer, j As Integer Set MyRange = Selection For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells (j, i) = Rnd Next j Next i End Sub

Acesta este un exemplu de buclă imbricată For Next în care se utilizează o buclă For într-o buclă For.

Să presupunem că faceți o selecție de 10 rânduri și 4 coloane, valoarea lui i variază de la 1 la 4 și valoarea lui j variază de la 1 la 10.

Când se execută prima buclă For, valoarea lui i este 1. Se mută apoi la a doua buclă For care rulează de 10 ori (pentru fiecare rând).

Odată ce a doua buclă For a fost executată de 10 ori, aceasta revine la prima buclă For unde acum valoarea lui i devine 2. Din nou următoarea buclă For rulează de 10 ori.

Așa funcționează bucla imbricată pentru Next.

Faceți clic aici pentru a descărca fișierul de exemplu.

Vă pot plăcea, de asemenea, următoarele tutoriale Excel VBA:

  • Lucrul cu celule și intervale în Excel VBA.
  • Lucrul cu foi de lucru în Excel VBA.
  • Lucrul cu registrele de lucru folosind VBA.
  • Utilizarea declarațiilor IF Then Else în VBA.
  • Excel VBA Select Case.
  • Crearea unei funcții definite de utilizator în Excel.
  • Evenimente Excel VBA - Un ghid ușor (și complet)
  • Cum să înregistrați o macro în Excel.
  • Cum se execută o macro în Excel.
  • Cum se creează un program de completare în Excel.
  • Cum să salvați și să refolosiți macrocomenzile utilizând manualul de lucru Excel personal Macro.
  • Exemple utile de macrocomenzi Excel pentru începători.
  • Utilizarea funcției InStr în VBA.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave