Excel VBA petlje

Petlje se mogu smatrati najboljom funkcionalnom komponentom VBA i mogu se smatrati srcem makronaredbi. Obično vam pomažu da smanjite broj redaka u vašem kodu i obavite posao u nekoliko minuta što čovjeku može trajati satima.

U svakodnevnom životu programer dolazi s takvim slučajevima kada treba iznova i iznova pokretati isti skup koda. Zove se petlja. Očito je da će svaki put kad se pokreće isti kod dobiti isti rezultat s djelomičnom promjenom varijable. Looping ima veliki niz prednosti, ali najvažnija od svega je automatizacija. Pomaže u automatizaciji stvari.

Ako prije niste koristili VBA skriptu, jednostavno možete otvoriti Excelov radni zbornik i pritisnuti Alt + F11 . Otvorit će se VBA projekt.

Ulazimo dublje unutra.

Pretpostavimo da smo željeli ispisati 1 do 10 brojeva na jednom kadru. Možemo to učiniti pomoću sljedećeg koda.

Kodirati:

 Pod petlja1 () Debug.Print 1 Debug.Print 2 Debug.Print 3 Debug.Print 4 Debug.Print 5 Debug.Print 6 Debug.Print 7 Debug.Print 8 Debug.Print 9 Debug.Print 10 End Sub 

Ako brzo možete doći do koda, dodao sam Debug.Print jedan po jedan za ispis brojeva od 1 do 10. Nakon pokretanja koda možemo vidjeti izlaz u neposrednom prozoru. Da biste otvorili neposredni prozor, pritisnite Ctrl + G bilo gdje u Excelu.

Pokrenite kôd pomoću tipke F5 ili ručno kako je prikazano na snimci zaslona u nastavku. Dakle, provjerimo izlaz za ovaj kod.

Vrste VBA petlji u Excelu

Budući da ste programer, nikada nećete biti voljni pisati ponavljajuće retke koji će upravo dati isti rezultat. Želite to automatizirati. Otuda ćemo vidjeti razne Excel VBA petlje i kako ih koristiti pomoću nekih primjera.

Unesite br. 1 - VBA za sljedeću petlju

Za Next VBA petlju omogućava nam da petljamo kroz raspon ćelija i izvodimo isti zadatak za svaku ćeliju navedenu u petlji. Ovdje treba navesti početni i krajnji broj.

kodirati:

 Potpuna petlja1 () Za i = 1 do 10 ćelija (i, 1) .Value = i Sljedeća i Kraj Pod 

Ovaj kod daje točno isti izlaz kao i prethodni. Međutim, u ovom kôdu najznačajnija stvar je smanjenje broja redaka. Smanjili smo 12-redaknu šifru na samo kod sa 5 redaka.

U ovom je kodu loop1 naziv makronaredbe. Petlja for počinje od i = 1, ona ispisuje vrijednost i (tj. 1) ispod excel ćelije, a na Next, ponovo ide na početak petlje for i čini da i = 2 ispisuje vrijednost i (tj. 2) u sljedećoj ćeliji i tako dalje dok kod ne dosegne zadnju vrijednost tj. 10. Čim kôd dosegne zadnju vrijednost i (10), kod se sam prekida zbog nedostupnosti bilo koje cjelobrojne vrijednosti iznad 10.

Pokrenite kôd pomoću tipke F5 ili ručno. Tako možete vidjeti izlaz kao dolje.

Tip # 2 - VBA za petlju s korakom naprijed

Kao što ste vidjeli u prethodnom primjeru petlje, imao sam povećanje u 1 koraku. Prema zadanim postavkama, vrijednost koraka smatra se 1 u VBA. Međutim, je li moguće postaviti vlastiti korak? Pretpostavimo da želite vidjeti samo parne brojeve između 1 i 20. Kako se to može učiniti?

Kao što opća matematika sugerira, brojevi koji su na udaljenosti 2 jedan od drugog (počevši od prvog parova broja 2) smatraju se parnim brojevima, zar ne?

Primijenit ćemo istu logiku. Pogledajte donji kôd za referencu.

Kodirati:

 Sub ForwardStep () Za i = 2 do 20 Korak 2 ćelije (i, 1) .Value = i Dalje i Kraj Pod 

Za vrijednosti koje počinju od 2, ova petlja omogućuje ispis 2, 4, 6, 8 … 20 u sljedećim Excel ćelijama. Korak 2 izričito je dao, tako da će počevši od broja 2 kôd preskočiti na sljedeći broj sa korakom 2 (tj. Ispisat će se 4) i tako dalje. Taj će se postupak nastaviti sve dok se 20 ne dogodi u stanici. Čim se 20 pojavi u ćeliji, petlja će se automatski prekinuti.

Pokrenite kôd pomoću tipke F5 ili ručno. Tako možete vidjeti izlaz kao dolje.

Unesite # 3 - VBA za petlju s korakom unatrag

Na isti način kao i za petlju s korakom naprijed, možemo koristiti za petlju s korakom prema natrag. Na primjer, što ako postavimo korak unatrag kao -2 i pokrenemo petlju za vrijednosti od 20 do 2?

Vidjet ćemo kako to funkcionira.

kodirati:

 Sub BackwardStep () Za i = 20 do 2 korak -2 Debug.Printajte i Next i End Sub 

Nakon pokretanja koda možemo vidjeti izlaz u neposrednom prozoru. Da biste otvorili neposredni prozor, pritisnite Ctrl + G bilo gdje u Excelu.

Kao što smo dali početnu točku petlje kao 20, a krajnju točku kao 2 sa korakom -2, petlja počinje od 20 i u koraku -2 prelazi na sljedeći broj koji je -18 i tako dalje. Čim petlja dosegne vrijednost 2, automatski se prekida, a posljednja vrijednost će se ispisati kao 2.

Vrsta # 4 - VBA ugniježđena za petlju

Također možemo gnijezditi theFor petlju. Međutim, ne preporučuje se kod koda gniježđenje iste petlje više od tri puta (To se može smatrati pogreškom u logici).

Molimo pogledajte donji kôd za ugniježđenu petlju.

Kodirati:

 Sub NestedFor () Za i = 1 do 10 Za j = 1 do 2 ćelije (i, j) .Value = i * j Dalje j Sljedeće i Kraj Sub 

U ovom primjeru, pri i = 1 i j = 1, makronaredba postavlja vrijednost i * j (1 * 1) u sjecište retka i = 1 i stupca j = 1 (tj. Ćelije A1) i ide za sljedeću vrijednost j (2) držanje i = 1. U sjecište retka i = 1 i stupca j = 2 (tj. ćelija B1), makro unosi vrijednost I * j (1 * 2). Petlja zanemaruje sljedeću vrijednost j jer j varira samo od 1 do 2 i prelazi na sljedeću vrijednost i.

Za i = 2 i j = 1, makro unosi vrijednost i * j (2 * 1) u sjecište drugog reda i prvog stupca (tj. Ćelije A2) i nastavlja dalje. Sve do raspona i i j.

Pokrenite kôd pomoću tipke F5 ili ručno kako je prikazano na snimci zaslona u nastavku. Tako možete vidjeti izlaz kao dolje.

Unesite broj 5 - VBA radi dok petlja

Do while petlja je jedna od najzanimljivijih petlji u VBA. Omogućuje vam da provjerite stanje i napišete izlaz (DO) kada je ispunjen određeni uvjet ili skup uvjeta (ili je uvjet / s istinit / istinit).

Pogledajte kôd u nastavku:

Kodirati:

 Sub do_timeloop () Dim i kao cjelobrojni i = 1 Učinite dok i <= 10 ćelija (i, 1) .Value = i * ii = i + 1 petlja Kraj Sub 

Ova petlja radi na sljedeći način:

Za vrijednosti i od 1 (prvotno i = 1) do 10, izračunava, i * i (tj. Vrijednost kvadrata za svaku cjelobrojnu vrijednost i) i unosi je ispod ćelije 1 do 10. Izlaz je ništa drugo nego kvadratne vrijednosti cijelih brojeva 1 do 10. Pogledajte detaljnije Loop pod ovim kodom. Obavezno ga dodajte, u protivnom sustav će pokrenuti pogrešku.

Pokrenite kôd pomoću tipke F5 ili ručno. Tako možete vidjeti izlaz kao dolje.

Ovo su neki od primjera VBA petlje za koje sam pokušao paziti u ovom članku. Nadam se da će biti dovoljno precizan da očisti neke koncepte.

Stvari koje treba zapamtiti

  • Dok koristite za petlju s korakom unatrag, pobrinite se da vaš početni broj mora biti veći od završnog broja i obrnuto.
  • U odjeljku Do, dok petlja provjerite da li koristite Loop za zatvaranje posla, prije nego što zaustavite čitav VBA kôd. U protivnom, sustav izbacuje pogrešku prevoditelja s porukom o pogrešci "Bez petlje".

Ovdje možete preuzeti ovaj VBA Loops Excel predložak - VBA Loops Excel predložak

Preporučeni članci

Ovo je vodič za Excel VBA petlje. Ovdje smo raspravljali o vrstama Excela VBA petlje i kako ih koristiti zajedno s nekoliko praktičnih primjera i preuzeti Excel predložak. Možete i pregledati ostale naše predložene članke -

  1. VBA funkcija u Excelu
  2. VBA VLOOKUP funkcija
  3. Prečaci na tipkovnici Excel
  4. Excel Percentil Formula

Kategorija: