VBA za petlju kroz redove tabele u Excelu (11 metoda)

  • Podijeli Ovo
Hugh West

Kada imamo veliki skup podataka u radnoj svesci Excel, ponekad je zgodno ako možemo petljati kroz redove kako bismo izdvojili konkretne rezultate koje želimo dobiti. Implementacija VBA je najefikasniji, najbrži i najsigurniji metod za pokretanje bilo koje operacije u Excelu. U ovom članku ćemo vam pokazati 11 različitih metoda o tome kako petljati kroz redove tabele u Excelu pomoću VBA makroa .

Preuzmite radnu knjigu

Ovdje možete preuzeti besplatnu Excel radnu svesku za vježbanje.

Prođite kroz redove tablice pomoću VBA.xlsm

11 metoda sa VBA za petlju kroz redove tabele u Excel-u

U nastavku ovog odeljka, naučićete kako da prođete kroz redove tabele sa 11 različitih metoda, kao što je petlja kroz redove do prazne ćelije, petlja kroz redove dok se ne pronađe određena vrijednost, petlja kroz redove i bojenje određene ćelije itd. s VBA makronaredbom u Excelu.

Iznad je primjer skupa podataka koji će ovaj članak pratiti da bi opisao metode.

1. Ugradite VBA za petlju kroz svaku ćeliju u svakom redu tabele po referentnom broju ćelije

Ako želite petljati kroz svaku ćeliju u svakom redu tabele na vašem Excel radnom listu i dobijte referentni broj ćelije kao povratnu vrijednost , zatim slijedite korake opisane u nastavku.

Koraci:

  • Na početku , pritisnite Alt + F11 na tastaturi ili iditevarijabla.
6926

Ovaj dio koda je ovdje za petlju kroz redove od 1 do 15. Ako pronađe specifičnu riječ “ Edge ” tada boji ćeliju koja sadrži riječ. Nastavlja to da radi sve dok ne završi skeniranje svih podataka od redova 1 do 15 u potrazi za riječju.

Pročitajte više: Kako koristiti VLOOKUP tabelarni niz zasnovan na Vrijednost ćelije u Excelu

Slična očitanja

  • Postoji li funkcija TABLE u Excelu?
  • Kako pretvoriti tablicu u listu u Excelu (3 brza načina)
  • Pretvoriti raspon u tablicu u Excelu (5 jednostavnih metoda)
  • Efikasno koristite formulu u Excel tabeli (sa 4 primjera)
  • Naziv Excel tablice: Sve što trebate znati

7. Implementirajte VBA za petlju kroz svaki red i obojite svaki neparni red u Excel-u

Iz prethodnog odjeljka naučili smo kako obojiti ćeliju koja nosi određenu vrijednost. U ovom odeljku ćemo naučiti kako proći kroz svaki red tabele i obojati svaki neparni red sa VBA makroom u Excel-u.

Koraci za izvršavanje procesa opisani su u nastavku.

Koraci:

  • Kao što je prikazano ranije, otvorite Visual Basic Editor od Developer tab i Insert a Module u prozor koda.
  • Zatim, kopirajte sljedeći kod i paste ga u prozor koda.
3895

Vaš kod je sada spreman za pokretanje.

  • Sada, Pokrenite makro i pogledajte sljedeću sliku da vidite izlaz.

Svi neparni redovi su obojeni nakon petlje kroz sve redove koji se nalaze u tabeli radnog lista.

Objašnjenje VBA koda

1496

Definirajte varijablu.

9476

Definirajte opseg s kojim ćemo raditi.

7464

Ovaj dio koda se odnosi na iteraciju kroz sve redove, počevši od sljedećeg reda trenutnog reda, B4 . Ako je mod dijeljenja brojeva redova sa 2 jednak vraćenom broju reda pohranjenom u cjelobrojnom tipu, tada ovaj kod boji sve redove koji su ekstrahovani proračunom pomoću indeksa boja koji je dat u kodu. Nastavlja se kretati kroz sve redove dok ne dođe do kraja raspona.

8. Implementirajte VBA za petlju kroz redove i obojite svaki parni red u Excelu

U prethodnom odeljku naučili smo kako da obojimo svaki neparni red tabele. U ovom odeljku ćemo naučiti kako proći kroz svaki red tabele i obojati svaki paran red sa VBA makroom u Excel-u.

Koraci za izvršavanje procesa su razmotreni u nastavku.

Koraci:

  • Prvo, otvorite Visual Basic Editor sa kartice Developer i Insert a Modul u prozoru koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
8162

Vaš kod je sada spreman zapokrenite.

  • Sljedeće, Pokrenite makro i pogledajte sljedeću sliku da vidite rezultat.

Svi parni redovi su obojeni nakon petlje kroz sve redove koji se nalaze u tabeli radnog lista.

Objašnjenje VBA koda

2191

Definirajte varijablu.

4851

Definirajte raspon s kojim ćemo raditi.

9285

Ovaj dio koda počinje iterirati nakon tri reda iz trenutnog reda, B4 . Prvo ga boji, a zatim povećava broj redova za 2 i nastavlja ga bojati dok ne dođe do posljednjeg reda skupa podataka.

9. Primijenite makro za ponavljanje kroz redove do prazne ćelije u Excelu

Ako želite da vaš kod radi kao da će petljati kroz sve redove tabele i zaustaviti se kada dođe do prazne ćelije , onda je ovaj odjeljak za vas. Taj zadatak možete izvršiti i sa FOR petljom i Do-do petlje u programu Excel VBA .

9.1. Sa FOR Loop

Koraci za prelazak kroz redove u tabeli dok se ne prikaže prazna ćelija sa FOR Loop u VBA Excelu.

Koraci:

  • Prvo, otvorite Visual Basic Editor sa kartice Razvojnik i Insert a Module u prozoru koda.
  • Nakon toga, kopirajte sljedeći kod i zalijepite ga u prozor koda.
2907

Vaš kod je sada spreman za pokretanje.

  • Onda, Pokrenite makro i rezultat je prikazan u gifu ispod.

Nakon pokretanja makroa, počeo je da se kreće kroz sve redove u tabeli i kada je stigao do prazne ćelije, ćelije B8 , zaustavio je iteraciju .

Objašnjenje VBA koda

2083

Definiraj varijablu.

9537

Isključi događaj ažuriranja ekrana.

3441

Spremi sve redove počevši od Ćelije B4 do posljednjeg.

5020

Odaberite ćeliju B4 .

3531

Ovaj dio koda počinje da se kreće kroz sve redove. Kada pronađe praznu ćeliju u redu onda je odabire i nastavlja skeniranje redova dok ne dođe do kraja.

2352

Uključite događaj ažuriranja ekrana.

9.2. Sa Do-Until petljom

Koraci za petlja kroz redove sve dok prazna ćelija sa Do-Until petljom u VBA su dati ispod.

Koraci:

  • Prvo, otvorite Visual Basic Editor sa kartice Developer i Insert a Modul u prozoru koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
3052

Vaš kod je sada spreman za pokretanje.

  • Kasnije, Pokreni makro. Rezultat je prikazan u sljedećem gif-u.

Nakon pokretanja makronaredbe, počeo je petljati kroz sve redove u tabeli i jednom stigao je do prazne ćelije, ćelije B8 , zaustavio je iteraciju .

VBA kodObjašnjenje

4568

Odaberite ćeliju od koje ćemo raditi.

1418

Počinje i nastavlja s petljom dok se ne pronađe prazna ćelija.

2148

Kada je prazna ćelija pronađeno u redu, a zatim ga odaberite i zaustavite iteraciju.

10. VBA makro za ponavljanje kroz redove do više praznih ćelija u Excelu

U prethodnom odeljku naučili ste kako da zaustavite petlju kada se pronađe prazna ćelija. Ali šta ako ne želite zaustaviti iteraciju dok se ne pronađe više praznih ćelija umjesto samo jedne.

Koraci za prelazak kroz redove dok se više praznih ćelija ne pronađe u tabeli sa VBA Excel su prikazani ispod.

Koraci:

  • Prvo, otvorite Visual Basic Editor iz Kartica Developer i Insert a Module u prozor koda.
  • Zatim, kopirajte sljedeći kod i zalijepi u prozor koda.
7099

Vaš kod je sada spreman za pokretanje.

  • Sada, Pokrenite makro i pogledajte sljedeći gif za izlaz.

Nakon pokretanja makroa, nije se zaustavio na prva prazna ćelija, ćelija B8 . Prestao je kada je pronašao dvije uzastopne prazne ćelije na ćeliji B16 .

Objašnjenje VBA koda

4783

Odaberite ćeliju od kojih ćemo raditi.

6585

Počinje i nastavlja petlju dok se ne pronađu dvije uzastopne prazne ćelije.

2338

Kada se pronađu dvije uzastopne prazne ćelije, tadaodaberite ga i zaustavite iteraciju.

11. Ugradite VBA za petlju kroz redove spajanjem svih kolona do praznih u Excelu

Ovaj odjeljak će vam pokazati kako proći kroz sve redove u tabeli i spojiti sve stupce do prazne ćelije se nalazi sa VBA Excelom.

Naučimo kako to učiniti s VBA makroom u Excelu.

Koraci:

  • Prvo, otvorite Visual Basic Editor sa kartice Razvojnik i Insert a Module u prozoru koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
4216

Vaš kod je sada spreman za pokretanje.

  • Kasnije, Pokrenite makro i pogledajte sljedeći gif za rezultat.

Kao što možete vidjeti iz gornjeg gif-a je da postoji skočni prozor MsgBox koji vam pokazuje konkateniranu vrijednost svih stupaca koji se nalaze u svakom row iz tabele vašeg Excel radnog lista. Ali je prestao kada je stigao do prazne ćelije .

Objašnjenje VBA koda

2875

Definirajte varijable.

1669

Postavite naziv lista s kojim ćemo raditi (“ ConcatenatingAllColUntilBlank ” je naziv lista u radnoj knjizi).

4863

Definirajte opseg s kojim ćemo raditi.

8114

Ovaj dio koda započinje petlju s nizom. Nastavlja da se vrti sve dok ne vrati najveći indeks niza i donju granicuprva dimenzija. Zatim ulazi u iteraciju izdvajanja donje granice druge dimenzije. Nakon toga, on prosljeđuje sve ekstrahovane vrijednosti u varijablu iResult tako što ih spaja i baca rezultat u MsgBox. Nastavlja to raditi sve dok ne pronađe praznu ćeliju.

Zaključak

Da zaključimo, ovaj članak vam je pokazao 11 učinkovitih metoda o tome kako petljati kroz redove tabele u Excelu sa VBA makroom . Nadam se da vam je ovaj članak bio od velike koristi. Slobodno postavite bilo kakva pitanja u vezi sa temom.

na karticu Programer -> Visual Basicda otvorite Visual Basic Editor.

  • Sljedeće, u iskačućem prozoru koda, iz traka menija, kliknite Umetni -> Modul .

  • Zatim, kopirajte sljedeći kod i zalijepite ga u kod prozor.
6726

Vaš kod je sada spreman za pokretanje.

  • Sada pritisnite F5 na svom tastaturu ili na traci menija izaberite Pokreni -> Pokrenite Sub/UserForm . Također možete jednostavno kliknuti na malu ikonu Play u traci podmenija da pokrenete makro.

  • Ili da vizualno svjedočite i uporedite skup podataka i rezultat, možete spremiti kod i vratiti se na radni list koji vas zanima.
  • Odatle možete kliknuti na Makroi na kartici Programer , odaberite ime makronaredbe, i zatim kliknite na Pokreni .

Nakon uspješnog izvršenja koda, pogledajte gornji gif da vidite rezultat. Pojavit će se skočni prozor MsgBox koji će vam pokazati referentni broj ćelije svake ćelije iz svakog reda iz tablice u vašem Excel listu.

Objašnjenje VBA koda

6471

Da dobijete zadnji broj reda u tabeli pretraživanjem kolone B.

5716

Postavite red broj 4, odakle počinju naši podaci.

1754

Za petlju od prvog reda.

5360

Postavite kolonu broj 2, odakle počinju naši podaci.

3175

Počnite petlju kroz redove da dobijete posljednjibroj kolone procjenom trenutnog reda do posljednjeg reda.

5067

Povećajte petlju kolone od prvog do posljednjeg reda.

6601

Ovaj dio koda radi na procesuiranju, povećavajući se nakon svakog iteraciju i prikažite rezultat koda.

Pročitajte više: Kako automatski dodati novi red u Excel tablicu

2 . Implementirajte VBA za petlju kroz svaku ćeliju u svakom redu po vrijednosti

Ako želite petljati kroz svaku ćeliju u svakom redu tablice i izbaciti vrijednost koja se nalazi u ćelijama kao povratnu vrijednost , onda će vam ovaj odjeljak pomoći da shvatite kako to učiniti s VBA Excelom.

To možete učiniti sa ListObject i sa DataBodyRange svojstvo VBA . Pokazat ćemo vam makro kod sa objektom i svojstvom.

2.1. Sa ListObject

Koraci za petljanje kroz svaku ćeliju u svakom redu tablice po vrijednosti ćelije sa ListObject u VBA Excelu su dati u nastavku.

Koraci:

  • Na isti način kao i prije, otvorite Visual Basic Editor sa kartice Developer i Umetnite Modul u prozor koda.
  • Zatim, u prozoru koda, kopirajte sljedeći kod i zalijepite to.
7797

Vaš kod je sada spreman za pokretanje.

  • Nakon toga, Pokrenite makro kao što smo vam pokazali u gornjem dijelu. Rezultat je prikazan na gif-uispod.

Pojaviće se skočni prozor MsgBox koji će vam pokazati vrijednost koju nosi svaka ćelija iz svakog reda iz tabele u vašem Excel listu.

Objašnjenje VBA koda

2746

Definirajte varijable.

9112

Ovaj komad koda prvo počinje da se kreće kroz redove u tabeli (“ TblStudents ” je naziv naše tabele). Zatim unosi stupce za svaki red. Nakon toga proslijedite vrijednost ćelije u MsgBox. Zatim idite na sljedeću kolonu. Nakon završetka iteracije kroz sve kolone jednog reda, prelazi se na sljedeći red i nastavlja proces iteracije do posljednjeg reda.

2.2. Sa svojstvom DataBodyRange

Da bismo bili precizniji sa ekstrahovanim podacima iz tabele, možete koristiti svojstvo DataBodyRange ListObject . Svojstvo DataBodyRange će vam dati rezultat koji sadrži raspon sa liste između reda zaglavlja i reda za umetanje.

Koraci o tome kako prolazite kroz svaku ćeliju u svakom redu tablice prema vrijednosti ćelije sa DataBodyRange u VBA Excelu su dati ispod.

Koraci:

  • Kao što je prikazano prije toga otvorite Visual Basic Editor sa kartice Razvojnik i Ubaci Modul u prozor koda.
  • Zatim , kopirajte sljedeći kod i zalijepite ga u prozor koda.
9524

Vaš kod je sada spreman za pokretanje.

  • Kasnije, Pokrenite makro i pogledajte sljedeći gif da vidite izlaz.

Pojaviće se iskačući MsgBox prikazuje vrijednost koju nosi svaka ćelija iz svakog reda iz tabele u vašem Excel listu.

Objašnjenje VBA koda

2082

Definiraj varijablu.

7850

Ovaj dio koda prvo počinje da se kreće kroz redove u tabeli (“ TblStdnt ” je naziv naše tabele) i vraća raspon vrijednosti isključujući red zaglavlja tabele. Zatim proslijedite vrijednost raspona u MsgBox. Zatim ide u sljedeći red da izdvoji raspon i nastavlja proces iteracije do posljednjeg reda.

3. Primijenite VBA makro za ponavljanje kroz redove spajanjem kolona u Excelu

Ovaj odjeljak će pokazati kako proći kroz redove u tabeli spajanjem kolona sa prvom kolonom iz vašeg skupa podataka u Excelu.

Na primjer, za naš skup podataka, prvo ćemo iterirati kroz John u ćeliji B5 i 101 u ćeliji C5 tako što ćemo ih spojiti, a zatim iterirati kroz John u ćeliji B5 i 89 u ćeliji D5 spajajući ih iz reda 5 .

Dozvolite nam da vam pokažemo kako to možete učiniti sa VBA makro u Excelu.

Koraci:

  • Prvo, otvorite Visual Basic Editor iz Programer kartica i Insert a Module u prozor koda.
  • Drugo, u prozoru koda, kopirajte sljedeće kodi zalijepi to.
8139

Vaš kod je sada spreman za pokretanje.

  • Treće, Pokreni makro. Pogledajte gif ispod da vidite rezultat.

Pojaviće se skočni prozor MsgBox koji će vam pokazati spojenu vrijednost ćelija iz prvog i drugog stupca ( John u ćeliji B5 iz stupca B i 101 u ćeliji C5 iz stupca C ), a zatim udružena vrijednost ćelija iz prve i treće kolone ( Jovan u ćeliji B5 iz kolone B i 89 u ćeliji D5 iz kolone D ) reda broj 5 iz vašeg skupa podataka. I ova operacija povezivanja će se nastaviti sve dok ne dođe do posljednjeg reda tabele.

Objašnjenje VBA koda

6545

Definirajte varijablu.

3904

Tada kod bira tabelu sa aktivnog lista (“ TblConcatenate ” u našem nazivu tabele).

7600

Nakon toga, počinje ponavljanje svakog reda isključujući zaglavlje kolona. Ako iteracija pronađe podudaranje u rasponu između zaglavlja stupca i redova, tada pohranjuje vrijednost u varijablu iValue .

3343

Ako se gornji uvjet ne ispuni, tada kod izbacuje vrijednost u MsgBox i završava uvjet. Nakon toga prelazi na petlju u drugom rasponu i nastavlja ponavljanje do završnog reda. Jednom kada dođe do krajnjeg reda, makro završava izvršavanje koda.

4. Ugradi makro za ponavljanjekroz redove spajanjem svih kolona u tablici u Excelu

U ovom odjeljku ćemo naučiti kako spojiti sve stupce koje svaki red drži u skupu podataka sa VBA makro u Excel-u.

Koraci koje treba izvršiti prikazani su ispod.

Koraci:

  • Prvo, otvorite Visual Basic Editor sa kartice Developer i Insert a Module u prozor koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
6595

Vaš kod je sada spreman za pokretanje.

  • Sljedeće, Pokreni makro kod.

Kao što možete vidjeti iz gornjeg gifa je da postoji skočni prozor MsgBox koji vam pokazuje spojenu vrijednost svih stupaca koji se nalaze u svakom redu iz tablice vašeg Excel radnog lista.

Objašnjenje VBA koda

3812

Definirajte varijable.

9883

Postavite naziv lista s kojim ćemo raditi (“ ConcatenatingAllCol ” je naziv lista u radnoj knjižici).

8528

De precizirajte ime tabele sa kojim ćemo raditi (“ TblConcatenateAll ” je ime tabele u našem skupu podataka).

4246

Počinje iteraciju kroz svaki red tabele.

7563

Započinje iteraciju kroz svaku kolonu svakog reda tabele.

2589

Spremite rezultat presijecanjem vrijednosti koje svaka kolona svakog reda nosi. Nakon skeniranja kroz sve kolone koji se nalaze u svakom redu, prošao jerezultirati u MsgBoxu. Zatim ponovo počinje petlju u sljedećem redu i nastavlja petlju dok ne dođe do posljednjeg reda tabele.

Pročitajte više: Kako sortirati više kolona tabele sa Excel VBA (2 metode)

5. Zaustavite iteraciju ako je vrijednost pronađena petljom kroz redove tabele sa VBA makroom

Pretpostavimo da želite proći kroz redove vaše tabele i zaustaviti petlju kada pronađe određenu vrijednost . To možete učiniti sa samo jednostavnim makro kodom.

Hajde da naučimo kako to učiniti VBA u Excelu.

Koraci:

  • Prvo, otvorite Visual Basic Editor sa kartice Razvojnik i Insert a Module u prozoru koda.
  • Zatim, u prozoru koda, kopirajte sljedeći kod i zalijepite ga.
4768

Vaš kod je sada spreman za pokretanje .

  • Kasnije, Pokreni makro.
  • On će pokrenuti petlju i zaustaviti je kada se pronalazi specifičnu vrijednost (“ Edge ”) u rasponu i baca rezultat u MsgBox .

Kao što možete vidjeti sa gornje slike, postoji skočni MsgBox koji vam pokazuje adresu ćelije, $B$10 , gdje smo pronašli navedenu vrijednost, Edge .

Objašnjenje VBA koda

2823

Definirajte varijabla.

7741

Ovaj dio koda je ovdje za petlju kroz redove od 1 do 15. Ako pronađe određenu riječ“ Edge ” onda prosljeđuje rezultat s adresom ćelije koja sadrži riječ. Nastavlja to raditi sve dok ne završi skeniranje svih podataka od redova 1 do 15 u potrazi za riječju.

Pročitajte više: Kako umetnuti ili izbrisati redove i kolone iz Excel tabele

6. VBA za petljanje kroz svaki red i bojenje određene vrijednosti u Excelu

Šta ako ne želite da ubacite adresu ćelije navedene vrijednosti u MsgBox? Možda biste željeli da obojite ćeliju koja nosi vrijednost koju tražite.

Hajde da naučimo kako to učiniti pomoću VBA makronaredbe.

Koraci:

  • Na isti način kao i prije, otvorite Visual Basic Editor sa kartice Developer i Insert a Module u prozoru koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
1881

Vaš kod je sada spreman za pokretanje.

  • Nakon toga, Pokreni makro.
  • On će pokrenuti petlju i zaustaviti je kada pronađe određenu vrijednost (“ Edge ”) u rasponu i oboji ćeliju s Indeksom boja koji ste naveli u kodu.

Kao što možete vidjeti sa gornje slike, C ell B10 , gdje smo pronašli navedenu vrijednost, Edge ” je obojeno nakon izvršenja koda.

Objašnjenje VBA koda

4460

Definirajte

Hugh West je vrlo iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i finansije i magistrirao poslovnu administraciju. Hugh ima strast prema podučavanju i razvio je jedinstven pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno znanje o Excel-u pomoglo je hiljadama studenata i profesionalaca širom svijeta da poboljšaju svoje vještine i napreduju u karijeri. Kroz svoj blog, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne Excel tutorijale i online obuku kako bi pomogli pojedincima i preduzećima da ostvare svoj puni potencijal.