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 -
- VBA funkcija u Excelu
- VBA VLOOKUP funkcija
- Prečaci na tipkovnici Excel
- Excel Percentil Formula