Sadržaj
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