VBA petlje - Popis četiri najbolje vrste petlji (s primjerima)

Excel VBA petlje

Petlje se obično koriste u svim programskim jezicima, gdje postoji određena potreba ili kriterij kada nam treba određeni kôd za pokretanje određeno vrijeme kada koristimo petlje za te kodove, sada u VBA postoje mnoge vrste petlji poput Do while, Do do, Za petlju i Za svaku petlju, ove petlje pomažu izvršiti kod dok se ne ispuni uvjet.

Dopustite mi da dam ovu izjavu na samom početku. "Ako želite master u VBA, morate dovršiti master koncept petlji u VBA makronaredbama."

Petlja nije ništa drugo nego prolazak kroz niz stanica, prolazak kroz niz objekata da bi se ponovio isti zadatak za sakupljanje stanica ili predmeta. Umjesto da zadatak radimo u zasebnom skupu redaka kodova pomoću petlji, možemo skratiti duljinu koda na najmanje moguće.

Popis 4 najbolje vrste VBA petlji

  1. Za sljedeću petlju
  2. Za svaku petlju
  3. Do While Loop
  4. Radite do petlje

Pogledajmo pojedinosti svake od ovih vrsta.

Tip # 1 - za sljedeću petlju

Petlja For Next omogućuje nam petlju kroz raspon stanica i izvršavanje istog zadatka za svaku ćeliju navedenu u petlji. Ovdje moramo reći početni i krajnji broj.

Primjer

Na primjer, ako želite umetnuti serijske brojeve od 1 do 10, ispod je tradicionalni način umetanja serijskih brojeva.

Podserijski broj ()

Raspon ("A1"). Vrijednost = 1
Raspon ("A2"). Vrijednost = 2
Raspon ("A3"). Vrijednost = 3
Raspon ("A4"). Vrijednost = 4
Raspon ("A5"). Vrijednost = 5
Raspon ("A6"). Vrijednost = 6
Raspon ("A7"). Vrijednost = 7
Raspon ("A8"). Vrijednost = 8
Raspon ("A9"). Vrijednost = 9
Raspon ("A10"). Vrijednost = 10

Kraj pod

Izgleda dobro, zar ne? Ali ovdje je problem samo 10 puta koji trebamo izvršiti ovaj zadatak. Ali zamislite što ako želite umetnuti 100 ili 1000 brojeva, možete li napisati kod od 100 ili 1000 redaka. Nemoguće je, i tu dobro dolazi petlja For Next.

Korak 1: Otvorite makro i proglasiti varijablu ja kao cijeli broj.

Sub Insert_Serial_Number ()

Dim i kao cjelovito

Kraj pod

Korak 2: Sada otvorite For Loop . Ovdje spomenite početak i kraj petlje pomoću varijable i.

Korak 3: Sada napišite kod koji želite izvesti. Moramo umetnuti brojeve od 1 do 10 u ćelije od A1 do A10. Umjesto primjene metode Range, primijenite metodu Cells.

Traži broj retka jer smo varijablu i već deklarirali kao cijeli broj. Njegova vrijednost je 1. Dakle, spomenite da mi se sviđa vaš broj retka i 1 kao broj vašeg stupca.

Sada je vrijednost sadašnje vrijednosti stanica bi trebao biti jedan, umjesto da spomenuti broj jedan spomenuti ja kao vrijednost. Jer svaki put petlja prolazi ja vrijednost se povećava za 1.

Sada pritisnite tipku F8 da biste zakoračili u jedan po jedan redak. Pritisnite F8 dok ne dosegne petlju For.

Ova žuta boja znak je da će odabrani redak koda biti pokrenut. Postavite kursor na I i on će prikazati vrijednost kao nula.

Sada pritisnite još jednom tipku F8 i postavite kursor na i & sada je vrijednost 1.

Dakle, vrijednosti i u svugdje su sada jednake 1. " Stanice (I, 1) .value = I" znači Stanice (1, 1) .value = 1.

Pritisnite tipku F8 i pogledajte vrijednost u ćeliji A1. Morate vidjeti 1 u ćeliji A1.

Ako pritisnete tipku F8, vratit će se još jednom u petlju For jer je krajnje ograničenje varijable i 10. Ovo vrijeme vrijednost I bit će 2.

Jer će se sljedeća petlja pokretati 10 puta i umetnuti serijske brojeve od 1 do 10.

Tip # 2 - za svaku petlju

Za Svaka petlja u VBA služi za pregledavanje kolekcije objekata. Za sljedeću petlju petlja kroz stanice i izvršava zadatak, a za svaku petlju petlja kroz objekte poput Radnih listova, Grafikona, Radnih knjiga, Oblika.

Pomoću ove petlje možemo proći kroz sve radne listove i izvršiti neke zadatke. Na primjer, možete petljati kroz sve radne listove da biste sakrili i otkrili radne listove.

Primjer # 1

Ako želite sakriti sve radne listove, osim lista na kojem radite, kako ćete to učiniti? Ako u radnoj knjižici imate 20 listova, to je dugotrajan postupak. Ali pomoću FOR EACH petlje možemo izvršiti ovaj zadatak.

Imam 5 listova i želim sakriti sve listove, osim lista "Glavni" ispod koda to bi učinio umjesto mene.

Sub To_Hide_All_Sheet ()

Zatamni kao radni list

Za svaki W u ActiveWorkbook.Worksheets

Ako je Ws.Name "Main", tada je
Ws.Visible = xlSheetVeryHidden
End If

Sljedeći Ws

Kraj pod

Primjer # 2

Ako želite otkriti sve skrivene listove, tada će posao obaviti donji kod.

Sub To_UnHide_Specific_Sheet ()

Zatamni kao radni list

Za svaki W u ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Sljedeći Ws

Kraj pod

Tip # 3 - Do While Loop

Petlja Do while izvodi zadatak dok je zadani uvjet TRUE, a kada uvjet postane FALSE, prestat će se petljati. Za razliku od druge dvije petlje, Do While testira stanje na kraju petlje, a ne na početku.

Pokazat ću vam primjer umetanja serijskih brojeva pomoću petlje Do While.

Pod Do_Dok_primjer ()

Dim i kao cjelovito

i = 1 radim
dok je i <11
ćelija (i, 1). Vrijednost = i
i = i + 1
petlja

Kraj pod

Gornja petlja će se izvoditi dok je i manje od 11 i nastavlja umetati serijske brojeve. Onog trenutka kad postanem veći od 11 godina, prestat će se petljati.

Tip # 4 - Do Do Loop

Za razliku od petlje Do While, petlja Do Do ne radi dok je uvjet TRUE; nego se petlja dok uvjet ne bude FALSE. Na primjer, pogledajte donji kod.

Poddo_Dok_primjer ()

Dim i kao cjelovito

i = 1
Do dok i = 11
ćelija (i, 1). Vrijednost = i
i = i + 1
Petlja

Kraj pod

Jedina razlika između petlje Do While & Do Do je operater kojeg smo naveli. U Do, Iako smo spomenuli pokretanje petlje dok je i manje od (<), 11 ali u petlji do, spomenuli smo pokretanje petlje dok i nije jednako (=) do 11.

Stvari koje treba zapamtiti

  • Postoji napredniji primjer Excel VBA petlje, ali detaljno ćemo pokriti svaki od njih u zasebnom članku.
  • Svaka je petlja za objektne varijable.
  • Iako izgleda isto kao i učiniti do, spominjanje stanja je vrlo važno.
  • Petlje su vrlo važni koncepti.

Zanimljivi članci...