VBA petlje - Kako koristiti Excel VBA Do Loops?

Excel VBA Do Loop

VBA Do petlja , to je skup uputa unutar potprocedure u kojoj se kôd pokreće određeni broj puta dok se ne postigne željeni kriterij ili ne premaši bilo koji prag ili se sigurno može reći da se dobiju potrebni podaci.

Iako petlja radi na logičkim rezultatima, ona nastavlja izvoditi petlju naprijed-nazad dok je uvjet testa ISTINA. Onog trenutka kada se test uvjet vrati FALSE, on će izaći iz petlje. Petlje su srce svakog programskog jezika. U našim člancima pokazujemo važnost petlji i načine njihovog kodiranja. U ovom vam članku pokazujemo kako se koristi Do Loop.

Kako se koristi VBA Do Loop?

Primjer # 1 - Stanje na kraju petlje

Vidjeli smo test stanja na početku petlje. U ranijem kodu vidjeli smo primjer umetanja serijskih brojeva i kod je bio takav.

Kodirati:

Sub Do_While_Loop_Example1 () Dim k Dokle k = 1 Do While k <= 10 ćelija (k, 1) .Vrijednost = kk = k + 1 Loop End Sub

Sada možete pokrenuti ovaj kôd ručno ili pomoću tipke prečaca F5 da biste vidjeli rezultat.

Ovaj će kôd umetnuti serijske brojeve od 1 do 10.

Ali također možemo testirati stanje na kraju petlje. Moramo upotrijebiti riječ "while" i test stanja na kraju nakon riječi Loop.

Jedina promjena ovdje je primijeniti test na kraju, kao što je prikazano u nastavku.

Kodirati:

Sub Do_While_Loop_Example1 () Dim k Dokle k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

Ovako, možemo testirati stanje i na kraju izjave petlje.

Napomena: kôd će se pokrenuti, a zatim testira uvjet da se još jednom vrati u petlju ili ne. To znači da će se prvo pokrenuti, a zatim pokušati kasnije.

Primjer # 2 - Zbrajanje pomoću funkcije Do while Loop

Pretpostavimo da u svom excel listu imate podatke o prodaji i troškovima. Ispod je skup lažnih podataka koje sam stvorio za izračun.

Sada moramo dobiti vrijednost dobiti u stupcu C. Već sam stvorio kod koji će obaviti posao za mene.

Kodirati:

Sub Do_While_Loop_Example2 () Dim k Do Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp) .Rad Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + ćelije (k, 2) k = k + 1 petlja na kraju Sub
LR = Stanice (retci.broj, 1) .završetak (xlUp) .red

Ovaj će kôd identificirati zadnji upotrijebljeni redak u prvom stupcu. To čini kod dinamičnim, jer ako dođe do dodavanja ili brisanja podataka, ovo će prilagoditi moje vrijeme slijeda za pokretanje petlje.

k = 2

Želimo da se izračun vrši od druge ćelije nadalje. Dakle, početna vrijednost k je 2.

Učinite Dok je k <= LR

Kao što sam rekao, LR će pronaći zadnji korišteni redak u prvom stupcu. To znači da će se petlja izvoditi dok je k <= na vrijednost LR. U ovom slučaju imam 10 redaka, dakle LR = 10.

Petlja će se izvoditi dok vrijednost k ne dosegne 10. Nakon što količina prođe 10 petlji, zaustavit će se.

Sada možete pokrenuti ovaj kod pomoću tipke prečaca F5 ili ručno da biste vidjeli rezultat.

Primjer # 3 - Izjava o izlazu u Izradi dok se petlja

Također možemo izaći iz petlje dok je uvjet još samo TRUE. Primjerice, uzmite ovdje i gornje podatke.

Pretpostavljam da ne želite učiniti puni izračun, ali samo trebate izračunati prvih 5 redova dobiti, a čim dođe do 6 -og reda, želite izaći iz petlje. To se može učiniti upotrebom funkcije IF u excelu. Donji kod uključuje izlaznu izjavu.

Kodirati:

Sub Do_While_Loop_Example3 () Dim k Do Long Dim LR As Long k = 2 LR = Stanice (Redovi.broj, 1). End (xlUp). Red Do Do k 6 Zatim izađite iz Do Cells (k, 3) .Vrijednost = Stanice ( k, 1) + ćelije (k, 2) k = k + 1 petlja na kraju Sub
"Ako je k> 6, onda izađi"

Ovaj redak koda započet će izlazni postupak. Petlja će se izvoditi sve dok vrijednost k ne dosegne 6. Onog trenutka kada pređe 6, Ako će uvjet izvršiti kôd, "Exit Do".

Sada možete pokrenuti ovaj kod pomoću tipke prečaca F5 ili ručno da biste vidjeli rezultat.

Stvari koje treba zapamtiti

  • Čini. Petlja radi na logičkim rezultatima i nastavlja pokretati petlju naprijed-natrag dok je uvjet testa ISTINA. Onog trenutka kada se test uvjet vrati FALSE, on će izaći iz petlje.
  • Iz petlje možemo izaći u bilo kojem trenutku prilagodbom još jednog logičnog testa unutar kruga pomoću funkcije IF.
  • Ako je uvjet ili test naveden na vrhu petlje, prvo će provjeriti test i dalje napredovati samo ako je ISTINA.
  • Ako se uvjet ili test daju na kraju petlje, prvo će izvršiti blok koda unutar naredbe petlje, a u budućnosti će testirati uvjet da odluči hoće li se još jednom pokrenuti petlja ili ne.

Zanimljivi članci...