VBA za zanko skozi vrstice tabele v Excelu (11 metod)

  • Deliti To
Hugh West

Kadar imamo v delovni knjigi programa Excel velik nabor podatkov, je včasih priročno, če lahko z zanko pregledamo vrstice in izluščimo določene rezultate, ki jih želimo dobiti. VBA je najučinkovitejša, najhitrejša in najvarnejša metoda za izvedbo katere koli operacije v Excelu. V tem članku vam bomo pokazali 11 različnih metod, kako zanka skozi vrstice tabele v Excelu z Makro VBA .

Prenos delovnega zvezka

Brezplačni delovni zvezek Excel lahko prenesete s tega mesta.

Zanka skozi vrstice tabele z VBA.xlsm

11 metod z VBA za zanko skozi vrstice tabele v Excelu

V tem razdelku boste izvedeli, kako zanka skozi vrstice tabele z 11 različnimi metodami, kot so zanka skozi vrstice do prazne celice, zanka skozi vrstice do določene vrednosti, zanka skozi vrstice in obarvanje določene celice itd. VBA makro v Excelu.

Zgoraj je primer podatkovnega niza, ki bo uporabljen v tem članku za opis metod.

1. Vgradnja programa VBA za ustvarjanje zanke skozi vsako celico v vsaki vrstici tabele po referenčni številki celice

Če želite zanka skozi vsako celico v vsaki vrstici tabele v delovnem listu programa Excel in pridobite referenčna številka celice kot povratna vrednost nato sledite korakom, opisanim v nadaljevanju.

Koraki:

  • Na začetku pritisnite Alt + F11 na tipkovnici ali odprite zavihek Razvijalec -> Visual Basic da odprete Urejevalnik Visual Basic .

  • Nato v pojavnem oknu kode v menijski vrstici kliknite Vstavljanje -> Modul .

  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsByRef() LastRow = Range("B" & Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> LastColumn MsgBox "Currently iterating cell " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Zdaj pritisnite F5 na tipkovnici ali v menijski vrstici izberite Run -> Run Sub/UserForm Lahko tudi kliknete na majhna ikona za predvajanje v podmeniju za zagon makra.

  • Če si želite vizualno ogledati in primerjati nabor podatkov in rezultat, lahko shranite kodo in vrnite se na delovni list zanimivo.
  • Od tam lahko kliknete Makroji iz Razvijalec zavihek, izberite ime makra, in nato kliknite Spustite .

Po uspešnem izvajanju kode si oglejte zgornji gif in si oglejte rezultat. Pojavilo se bo pojavno okno MsgBox vam pokaže referenčna številka vsake celice iz vsake vrstice iz tabele v listu Excel.

Razlaga kode VBA

 LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Pridobitev številke zadnje vrstice v tabeli z iskanjem po stolpcu B.

 FirstRow = 4 

Nastavite vrstico številka 4, v kateri se začnejo naši podatki.

 i = FirstRow 

Začetek zanke od prve vrstice.

 FirstColumn = 2 

Nastavite stolpec številka 2, v katerem se začnejo naši podatki.

 Do dokler i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column 

Začnite krožiti po vrsticah, da bi dobili številko zadnjega stolpca, tako da ovrednotite trenutno vrstico do zadnje vrstice.

 Count = FirstColumn Do Until Count> LastColumn 

Povečanje zanke stolpca od prve vrstice do zadnje vrstice.

 MsgBox "Trenutno iterira celica " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Ta del kode deluje tako, da obdeluje, po vsaki iteraciji poveča in prikaže rezultat kode.

Preberite več: Kako samodejno dodati novo vrstico v Excelovo tabelo

2. Izvajanje VBA za ustvarjanje zanke po vrednosti v vsaki celici v vsaki vrstici

Če želite zaciklite zanko skozi vsako celico v vsaki vrstici tabele in kot povratno vrednost vrnite vrednost, ki se nahaja v celicah , potem boste v tem razdelku ugotovili, kako to storiti z VBA Excel.

To lahko storite z ListObject in z DataBodyRange lastnost VBA . Prikazali vam bomo makro kodo z objektom in lastnostjo.

2.1. Z objektom ListObject

Koraki za z ListObjectom naredite zanko skozi vsako celico v vsaki vrstici tabele po vrednosti celice. na spletnem mestu VBA Excel so navedeni spodaj.

Koraki:

  • Na enak način kot prej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato v oknu kode, kopiranje naslednjo kodo in prilepite ga.
 Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Nato, Spustite makra, kot smo vam pokazali v zgornjem razdelku. Rezultat je prikazan v spodnjem gifu.

Na voljo bo pop-up MsgBox vam pokaže vrednost, ki jo nosi vsaka celica iz vsake vrstice. iz tabele v listu Excel.

Razlaga kode VBA

 Dim iListRow kot ListRow Dim iCol kot Range 

Opredelite spremenljivke.

 Za vsako iListRow v ActiveSheet.ListObjects("TblStudents").ListRows za vsak iCol v iListRow.Range MsgBox iCol.Value Naslednji iCol Naslednji iListRow 

Ta del kode najprej začne pregledovati vrstice v tabeli (" TblStudents " je ime naše tabele). Nato vnese stolpce za vsako vrstico. Nato v MsgBox posreduje vrednost celice. Nato preide na naslednji stolpec. Ko konča iteracijo skozi vse stolpce ene vrstice, preide na naslednjo vrstico in nadaljuje postopek iteracije do zadnje vrstice.

2.2 Z lastnostjo DataBodyRange

Če želite natančneje določiti podatke, pridobljene iz tabele, lahko uporabite DataBodyRange lastnost ListObject . DataBodyRange vam bo vrgel rezultat, ki vsebuje območje s seznama med vrstico glave in vrstico vstavljanja.

Koraki, kako lahko zazankati vsako celico v vsaki vrstici tabele po vrednosti celice s funkcijo DataBodyRange na spletnem mestu VBA Excel so navedeni spodaj.

Koraki:

  • Kot je bilo prikazano prej, odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Kasneje, Spustite makro in si oglejte naslednji gif, da si ogledate izhod.

Na voljo bo pop-up MsgBox vam pokaže vrednost, ki jo nosi vsaka celica iz vsake vrstice. iz tabele v listu Excel.

Razlaga kode VBA

 Dim iRange Kot obseg 

Opredelite spremenljivko.

 Za vsak iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

Ta del kode najprej začne pregledovati vrstice v tabeli (" TblStdnt " je ime naše tabele) in vrne razpon vrednosti brez naslovne vrstice tabele. Nato v MsgBox posreduje vrednost razpona. Nato gre v naslednjo vrstico, da izloči razpon, in nadaljuje postopek iteracije do zadnje vrstice.

3. Uporaba makra VBA za iteracijo po vrsticah z združevanjem stolpcev v programu Excel

V tem razdelku bo prikazano, kako naredite zanko skozi vrstice v tabeli tako, da združite stolpce s prvim stolpcem. iz nabora podatkov v Excelu.

Za naš nabor podatkov bomo na primer najprej iterirali skozi John v celici B5 in . 101 v celici C5 z njihovim združevanjem in nato iterira po John v celici B5 in . 89 v celici D5 tako, da jih združite iz vrstica 5 .

Pokažemo vam, kako lahko to storite z VBA makro v Excelu.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Drugič, v oknu kode, kopiranje naslednjo kodo in prilepite ga.
 Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Tretjič, Spustite Oglejte si spodnji gif in si oglejte rezultat.

Na voljo bo pop-up MsgBox vam pokaže združena vrednost celic iz prvega in drugega stolpca. ( John v celici B5 iz stolpca B in . 101 v celici C5 iz stolpca C ) in nato združena vrednost celic iz prvega in tretjega stolpca ( John v celici B5 iz stolpca B in . 89 v celici D5 iz stolpca D ) iz vrstica številka 5 iz vašega nabora podatkov. In ta postopek združevanja se bo nadaljeval, dokler ne bo dosegel zadnje vrstice tabele.

Razlaga kode VBA

 Dim iRange kot obseg Dim iValue kot String 

Opredelite spremenljivko.

 Z ActiveSheet.ListObjects("TblConcatenate") 

Nato koda izbere tabelo iz aktivnega lista (" TblConcatenate " v imenu naše tabele).

 Za vsak iRange v .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value 

Nato začne iterirati vsako vrstico brez glave stolpca. Če iteracija najde ujemanje v območju med glavo stolpca in vrsticami, potem vrednost shrani v iVrednost spremenljivka.

 Drugače MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With 

Če zgornji pogoj ni izpolnjen, koda vrže vrednost v okence MsgBox in konča izvajanje pogoja. Nato preide na zanko v drugem območju in nadaljuje iteracijo do končne vrstice. Ko doseže končno vrstico, makro konča izvajanje kode.

4. Vgradnja makra za iteracijo po vrsticah z združevanjem vseh stolpcev v tabeli v Excelu

V tem razdelku bomo izvedeli, kako združite vse stolpce, ki jih vsebuje vsaka vrstica. v naboru podatkov z VBA makro v Excelu.

Koraki za izvedbo so prikazani spodaj.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumn iResult = iResult & " " &Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Naslednji, Spustite makro kodo.

Kot lahko vidite iz zgornjega gifa, je pojavno okno MsgBox vam pokaže združena vrednost vseh stolpcev v vsaki vrstici. iz tabele v delovnem listu Excel.

Razlaga kode VBA

 Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String 

Opredelite spremenljivke.

 Set iListi = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Nastavite ime lista, s katerim bomo delali (" KonkateniranjeVsegaCol " je ime lista v delovnem zvezku).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Določite ime tabele, s katero bomo delali (" TblConcatenateAll " je ime tabele v našem naboru podatkov).

 Za vsako iRow v iObj.ListRows 

Začne iteracijo skozi vsako vrstico tabele.

 Za vsak iCol v iObj.ListColumns 

Začne iteracijo skozi vsak stolpec vsake vrstice tabele.

 iResult = iResult & " " & Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow 

Rezultat shrani tako, da preseka vrednosti, ki jih nosi vsak stolpec vsake vrstice. Po pregledu vseh stolpcev, ki se nahajajo v vsaki vrstici, posreduje rezultat v MsgBox. Nato ponovno začne z zanko v naslednji vrstici in nadaljuje z zanko, dokler ne pride do zadnje vrstice tabele.

Preberite več: Kako razvrstiti več stolpcev tabele s programom Excel VBA (2 metodi)

5. Zaustavite iteracijo, če je bila najdena vrednost z zanko v vrsticah tabele z makrom VBA

Recimo, da želite zanka skozi vrstice tabele in ustavi zanko, ko najde določeno vrednost. . To lahko storite s preprosto makro kodo.

Naučimo se, kako to storiti VBA v Excelu.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato v oknu kode, kopiranje naslednjo kodo in prilepite ga.
 Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Kasneje, Spustite makro.
  • To bo zaženite zanko in jo ustavite, ko najde določeno vrednost. (" Rob ") v območju in vrže rezultat je MsgBox .

Kot lahko vidite na zgornji sliki, se v pojavnem oknu MsgBox prikaže naslov celice, $B$10 , kjer smo našli določeno vrednost, " Rob " .

Razlaga kode VBA

 Dim iData kot območje 

Opredelite spremenljivko.

 Za vsak iData v območju("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData 

Ta del kode je namenjen pregledovanju vrstic od 1 do 15. Če najde določeno besedo " Rob ", nato posreduje rezultat z naslovom celice, v kateri je beseda. To počne, dokler ne konča pregledovanja vseh podatkov iz vrstic od 1 do 15 v iskanju besede.

Preberite več: Kako vstaviti ali izbrisati vrstice in stolpce iz Excelove tabele

6. VBA za zanko skozi vsako vrstico in obarvanje določene vrednosti v Excelu

Kaj pa, če ne želite vreči naslova celice z določeno vrednostjo v MsgBox? Morda boste želeli obarvajte celico, ki nosi vrednost ki ga iščete.

Naučimo se, kako to storiti z VBA makro.

Koraki:

  • Na enak način kot prej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Nato, Spustite makro.
  • To bo začne zanko in jo ustavi, ko najde določeno vrednost (" Rob ") v območju in obarvajte celico z ColourIndex ki ste ga navedli v kodi.

Kot je razvidno iz zgornje slike, C ell B10 , kjer smo našli določeno vrednost, " Rob " je obarvan po izvedbi kode.

Razlaga kode VBA

 Dim iData kot območje 

Opredelite spremenljivko.

 Za vsak iData v območju("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData 

Ta del kode je namenjen pregledovanju vrstic od 1 do 15. Če najde določeno besedo " Rob ", nato obarva celico, v kateri je beseda. To počne, dokler ne konča pregledovanja vseh podatkov iz vrstic od 1 do 15 v iskanju besede.

Preberite več: Kako uporabiti tabelo VLOOKUP na podlagi vrednosti celic v Excelu

Podobna branja

  • Ali v Excelu obstaja funkcija TABLE?
  • Kako pretvoriti tabelo v seznam v Excelu (3 hitri načini)
  • Pretvarjanje obsega v tabelo v Excelu (5 enostavnih metod)
  • Učinkovita uporaba formule v Excelovi tabeli (s 4 primeri)
  • Ime Excelove tabele: vse, kar morate vedeti

7. Izvajanje VBA za zanko skozi vsako vrstico in obarvanje vsake lihe vrstice v Excelu

V prejšnjem razdelku smo se naučili, kako obarvati celico, ki nosi določeno vrednost. V tem razdelku se bomo naučili, kako naredite zanko skozi vsako vrstico tabele in obarvajte vsako liho vrstico s spletno stranjo . VBA makro v Excelu.

V nadaljevanju so opisani koraki za izvedbo postopka.

Koraki:

  • Kot je bilo prikazano prej, odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Zdaj, Spustite makro in si oglejte naslednjo sliko, da si ogledate izhod.

Vse lihe vrstice so obarvane. po preletu vseh vrstic v tabeli delovnega lista.

Razlaga kode VBA

 Dim iRow kot Long 

Opredelite spremenljivko.

 Z obsegom ("B4").CurrentRegion 

Določite območje, s katerim bomo delali.

 Za iRow = 2 Do .Rows.Count Če iRow / 2 = Int(iRow / 2) Potem .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

Ta del kode se nanaša na iteracijo skozi vse vrstice, začenši z naslednjo vrstico trenutne vrstice, B4 Če je mod deljenja številk vrstic z 2 enak vrnjeni številki vrstice, shranjeni v vrsti celega števila, potem ta koda obarva vse vrstice, ki so bile izločene z izračunom, z barvnim indeksom, ki je naveden v kodi. Koda se pomika skozi vse vrstice, dokler ne doseže konca območja.

8. Izvajanje VBA za zanko skozi vrstice in obarvanje vsake lihe vrstice v Excelu

V prejšnjem razdelku smo se naučili, kako obarvati vsako liho vrstico tabele. V tem razdelku se bomo naučili, kako naredite zanko skozi vsako vrstico tabele in obarvajte vsako sodo vrstico z makrom VBA v programu Excel.

V nadaljevanju so opisani koraki za izvedbo postopka.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Naslednji, Spustite makro in si oglejte naslednjo sliko, da vidite rezultat.

Vse sodo oštevilčene vrstice so obarvane. po preletu vseh vrstic v tabeli delovnega lista.

Razlaga kode VBA

 Dim iRow kot Long 

Opredelite spremenljivko.

 Z obsegom ("B4").CurrentRegion 

Določite območje, s katerim bomo delali.

 Za iRow = 3 To .Rows.Count Korak 2 .Rows(iRow).Interior.ColorIndex = 8 Naslednji End With 

Ta del kode začne iterirati po treh vrsticah od trenutne vrstice, B4 Najprej jo obarva, nato poveča število vrstic za 2 in jo obarva, dokler ne doseže zadnje vrstice nabora podatkov.

9. Uporaba makra za iteracijo skozi vrstice do prazne celice v Excelu

Če želite, da vaša koda deluje tako, kot bo zanka skozi vse vrstice tabele in se ustavi, ko pride do prazne celice. potem je ta razdelek namenjen vam. To opravilo lahko izvedete tako z Zanka FOR in Zanka Do-do v programu Excel VBA .

9.1. Z zanko FOR

Koraki do zanko skozi vrstice v tabeli, dokler ne najdete prazne celice z zanko FOR na spletnem mestu VBA Excel so navedeni spodaj.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Nato, Spustite makro in rezultat je prikazan v spodnjem gifu.

Po zagonu makra se začel z zanko skozi vse vrstice. v tabeli in ko je dosegel prazna celica, celica B8 , je zaustavil iteracijo .

Razlaga kode VBA

 Dim x kot celoštevilsko število 

Opredelite spremenljivko.

 Application.ScreenUpdating = False 

Izklopite dogodek posodabljanja zaslona.

 NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count 

shranite vse vrstice od Celica B4 do zadnjega.

 Razpon("B4").Select 

Izberite Celica B4 .

 Za x = 1 do NumRows ActiveCell.Offset(1, 0).Select Naslednji 

Ta del kode začne pregledovati vse vrstice. Ko v vrstici najde prazno celico, jo izbere in nadaljuje pregledovanje vrstic, dokler ne pride do konca.

 Application.ScreenUpdating = True 

Vključite dogodek posodabljanja zaslona.

9.2. Z zanko Do-Until

Koraki do zanka skozi vrstice do prazne celice z zanko Do-Until na spletnem mestu VBA so navedeni v nadaljevanju.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Kasneje, Spustite Rezultat je prikazan v naslednjem gifu.

Po zagonu makra se je začel pregledovanje vseh vrstic v zanki v tabeli in ko je dosegel prazna celica, celica B8 , je zaustavil iteracijo .

Razlaga kode VBA

 Razpon("B4").Select 

Izberite celico, iz katere bomo delali.

 Do Dokler ni prazno(ActiveCell) 

Začne in nadaljuje z zanko, dokler ne najde prazne celice.

 ActiveCell.Offset(1, 0).Select Loop 

Ko v vrstici najdete prazno celico, jo izberite in ustavite iteracijo.

10. Makro VBA za iteracijo skozi vrstice, dokler ni več praznih celic v Excelu

V prejšnjem razdelku ste se naučili, kako ustaviti zanko, ko je najdena prazna celica. Kaj pa, če ne želite ustaviti iteracije, dokler ni najdenih več praznih celic in ne samo ena.

Koraki za zanka skozi vrstice, dokler ni več praznih celic se nahajajo v tabeli z VBA Excel so prikazani spodaj.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Zdaj, Spustite makro in si oglejte naslednji gif za izpis.

Po zagonu makra se se ni ustavil na prvi prazni celici, celici B8. . Ustavil se je, ko je našel dve zaporedni prazni celici na celici B16 .

Razlaga kode VBA

 Razpon("B4").Select 

Izberite celico, iz katere bomo delali.

 Do Dokler ni prazno(ActiveCell) in dokler ni prazno(ActiveCell.Offset(1, 0)) 

Začne in nadaljuje z zanko, dokler ne najde dveh zaporednih praznih celic.

 ActiveCell.Offset(2, 0).Select Loop 

Ko najdemo dve zaporedni prazni celici, jo izberemo in ustavimo iteracijo.

11. Vgradnja VBA za ustvarjanje zanke po vrsticah z združevanjem vseh stolpcev, dokler niso prazni v Excelu

V tem razdelku boste izvedeli, kako naredite zanko skozi vse vrstice v tabeli in združite vse stolpce, dokler ne najdete prazne celice. se najde z VBA Excel.

Naučimo se, kako to storiti z VBA makro v Excelu.

Koraki:

  • Najprej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • Nato, kopiranje naslednjo kodo in prilepite v okno za kodo.
 Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i End Sub 

Vaša koda je zdaj pripravljena za zagon.

  • Kasneje, Spustite makro in si oglejte rezultat v naslednjem gifu.

Kot lahko vidite iz zgornjega gifa, je pojavno okno MsgBox vam pokaže združena vrednost vseh stolpcev v vsaki vrstici. iz tabele v delovnem listu programa Excel. se je ustavil, ko je dosegel prazno celico. .

Razlaga kode VBA

 Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String 

Opredelite spremenljivke.

 Set iListi = Listi("ConcatenatingAllColUntilBlank") 

Nastavite ime lista, s katerim bomo delali (" PovezovanjeAllColUntilBlank " je ime lista v delovnem zvezku).

 iVrednost = Razpon("B4").CurrentRegion 

Določite območje, s katerim bomo delali.

 Za i = 2 Do UBound(iVrednost, 1) iResult = "" Za J = 1 Do UBound(iVrednost, 2) iResult = IIf(iResult = "", iVrednost(i, J), iResult & " " & iVrednost(i, J)) Naslednji J MsgBox iResult Naslednji i 

Ta del kode začne zanko z matriko. Z zanko nadaljuje, dokler ne vrne največjega indeksa matrike in spodnje meje prve razsežnosti. Nato začne iteracijo pridobivanja spodnje meje druge razsežnosti. Nato vse pridobljene vrednosti prenese v polje iResult tako, da jih združi in rezultat vrže v okence MsgBox. To počne, dokler ne najde prazne celice.

Zaključek

Za zaključek vam je ta članek pokazal 11 učinkovitih metod, kako zanka skozi vrstice tabele v Excelu z Makro VBA Upam, da vam je ta članek zelo koristil. Vabim vas, da zastavite kakršno koli vprašanje v zvezi s to temo.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.