VBA Exceli tabeli ridade läbimiseks (11 meetodit)

  • Jaga Seda
Hugh West

Kui meie Exceli töövihikus on suur andmekogum, on mõnikord mugav, kui saame ridade kaudu loopida, et eraldada konkreetsed tulemused, mida soovime saada. Rakendades VBA on kõige tõhusam, kiirem ja turvalisem meetod, et käivitada Excelis mis tahes toimingut. Selles artiklis näitame teile 11 erinevat meetodit, kuidas teha tsükkel läbi tabeli ridade Excelis koos VBA makro .

Lae alla töövihik

Tasuta Exceli harjutusvihiku saate alla laadida siit.

Loop läbi ridade tabeli VBA.xlsm abil

11 meetodit VBA-ga Exceli tabeli ridade läbitöötamiseks

Pärast seda osa saate teada, kuidas tsükkel läbi tabeli ridade 11 erineva meetodiga, näiteks loop läbi ridade kuni tühja lahtrini, loop läbi ridade kuni konkreetse väärtuse leidmiseni, loop läbi ridade ja konkreetse lahtri värvimine jne. koos VBA makro Excelis.

Eespool on esitatud näiteandmestik, mida käesolevas artiklis järgitakse meetodite kirjeldamiseks.

1. Embed VBA, et läbida tabeli iga rea iga lahtri lahtri viitenumbri järgi

Kui soovite tsükkel läbi iga tabeli iga rea iga lahtri kohta oma Exceli töölehel ja saada lahtri viitenumber kui tagastusväärtus , siis järgige allpool kirjeldatud samme.

Sammud:

  • Alguses vajutage Alt + F11 klaviatuuril või mine vahekaardile Arendaja -> Visual Basic avada Visual Basic toimetaja .

  • Seejärel klõpsake hüpikakna koodiaknas menüüribal nuppu Insert -> Moodul .

  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Nüüd vajutage F5 klaviatuuril või valige menüüribalt Run -> Run Sub/UserFormi käivitamine Võite ka lihtsalt klõpsata väike Play ikoon allmenüüribal makro käivitamiseks.

  • Või visuaalselt näha ja võrrelda andmekogumit ja tulemust, võite te Salvesta kood ja minna tagasi töölehe juurde huvi.
  • Sealt saate klõpsata Makros alates Arendaja vahekaart, valige makro nimi, ja seejärel klõpsake Käivita .

Pärast koodi edukat täitmist vaadake ülaltoodud gif-i, et näha tulemust. Seal ilmub hüpikakuva MsgBox näidates teile iga rea iga lahtri viitenumber Exceli tabelist.

VBA koodi selgitus

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

Et saada tabeli viimase rea number, otsides veergu B.

 FirstRow = 4 

Määrake rida number 4, kust meie andmed algavad.

 i = FirstRow 

Esimese rea silmusena.

 FirstColumn = 2 

Määrake veerg number 2, kust meie andmed algavad.

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

Alustage ridade läbimist, et saada viimane veeru number, hinnates praegust rida kuni viimase reani.

 Count = FirstColumn Do Kuni Count> LastColumn 

Inkrementaarsus, mis suurendab veergu esimesest reast kuni viimase reani.

 MsgBox "Hetkel iteratsioonirakk " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

See kooditükk töötleb, suurendab pärast iga iteratsiooni ja kuvab koodi tulemuse.

Loe edasi: Kuidas lisada Exceli tabelis automaatselt uus rida

2. Rakendada VBA-d, et läbida iga rea iga lahtri väärtuse järgi.

Kui soovite Loop läbi iga tabeli iga rea iga lahtri ja visata tagastusväärtusena lahtrites olev väärtus. , siis see osa aitab teil aru saada, kuidas seda teha koos VBA Excel.

Seda saab teha koos ListObject ja koos DataBodyRange omadus VBA Näitame teile makrokoodi koos objekti ja omadusega.

2.1. ListObjektiga ListObject

Sammud, et Loop läbi iga lahtri iga rea tabeli lahtri väärtuse järgi ListObjectiga aadressil VBA Excel on esitatud allpool.

Sammud:

  • Samamoodi nagu varem, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Seejärel koodiaknas, koopia järgmine kood ja paste seda.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Pärast seda, Käivita makro, nagu me näitasime eespool. Tulemus on näidatud alloleval gifil.

Seal on pop-up MsgBox näidates teile väärtus, mida kannab iga rea iga lahter Exceli tabelist.

VBA koodi selgitus

 Dim iListRow As ListRow Dim iCol As Range 

Määrake muutujad.

 For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow 

See kooditükk alustab kõigepealt tabeli ridade läbimist (" TblStudents " on meie tabeli nimi). Seejärel sisestab veerud iga rea kohta. Pärast seda annab MsgBoxis üle lahtri väärtuse. Seejärel läheb järgmise veeru juurde. Pärast ühe rea kõigi veergude iteratsiooni lõpetamist läheb järgmise rea juurde ja jätkab iteratsiooniprotsessi kuni viimase reani.

2.2. DataBodyRange'i omadusega

Selleks, et olla tabelist väljavõetud andmetega täpsem, saate kasutada funktsiooni DataBodyRange omadus ListObject . DataBodyRange omadus viskab teile tulemuse, mis sisaldab vahemikku nimekirjast pealkirja rea ja sisestusrea vahel.

Sammud, kuidas saate Loop läbi iga lahtri iga tabeli rea lahtri väärtuse järgi DataBodyRange'iga aadressil VBA Excel on esitatud allpool.

Sammud:

  • Nagu eespool näidatud, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Teie kood on nüüd valmis käivitamiseks.

  • Hiljem, Käivita makro ja vaadake järgmist gif'i, et näha väljundit.

Seal on pop-up MsgBox näidates teile väärtus, mida kannab iga rea iga lahter Exceli tabelist.

VBA koodi selgitus

 Dim iRange As Range 

Määrake muutuja.

 For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

See kooditükk alustab kõigepealt tabeli ridade läbimist (" TblStdnt " on meie tabeli nimi) ja tagastab väärtuste vahemiku, välja arvatud tabeli päise rea. Seejärel edastab vahemiku väärtuse MsgBoxis. Seejärel läheb järgmisele reale, et vahemik välja võtta ja jätkab iteratsiooniprotsessi kuni viimase reani.

3. Rakendage VBA makro, et korrata ridu Exceli veergude ühendamise abil.

Selles jaotises näidatakse, kuidas tsükkel läbi ridade tabelis, ühendades veerud esimese veeruga oma andmestikust Excelis.

Näiteks meie andmekogumi puhul korrutame kõigepealt läbi John lahtris B5 ja 101 lahtris C5 nende ühendamise teel ja seejärel iteratsiooniga läbi John lahtris B5 ja 89 lahtris D5 ühendades need kokku alates rida 5 .

Näitame teile, kuidas seda saab teha koos VBA makro Excelis.

Sammud:

  • Alguses avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Teiseks, koodiaknas, koopia järgmine kood ja paste seda.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Kolmandaks, Käivita makro. Tulemuse nägemiseks vaadake allolevat gif'i.

Seal on pop-up MsgBox näidates teile esimese ja teise veeru lahtrite liidetud väärtus ( John lahtris B5 alates Colum B ja 101 lahtrisse C5 veerus C ) ja seejärel esimese ja kolmanda veeru lahtrite liidetud väärtus ( John lahtris B5 alates Colum B ja 89 lahtrisse D5 veerust D ). rida number 5 teie andmekogumist. Ja see liitmisoperatsioon jätkub, kuni jõutakse tabeli viimase reani.

VBA koodi selgitus

 Dim iRange As Range Dim iValue As String 

Määrake muutuja.

 With ActiveSheet.ListObjects("TblConcatenate") 

Seejärel valib kood aktiivsest lehest tabeli (" TblConcatenate " meie tabeli nimes).

 For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value 

Pärast seda alustab iteratsiooni iga rea peale veeru päise. Kui iteratsioon leiab kokkulangevuse veeru päise ja ridade vahelises vahemikus, siis salvestab ta väärtuse faili iValue muutuv.

 Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With 

Kui ülaltoodud tingimus ei täitu, siis viskab kood väärtuse MsgBoxi ja lõpetab tingimuse täitmise. Pärast seda liigub ta edasi looping teise vahemikku ja jätkab iteratsiooni kuni lõpurivini. Kui ta jõuab lõpurivini, lõpetab makro koodi täitmise.

4. Embed Macro, et korrata ridade kaudu, ühendades kõik Exceli tabeli veerud kokku

Selles jaotises õpime, kuidas liita kõik veerud, mis on igas reas, kokku andmekogumis koos VBA makro Excelis.

Selle teostamise sammud on esitatud allpool.

Sammud:

  • Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 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.ListColumns iResult = iResult & " " &Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub 

Teie kood on nüüd valmis käivitamiseks.

  • Järgmine, Käivita makrokood.

Nagu näete ülaltoodud gif on, et seal on pop-up MsgBox näidates teile kõigi igas reas asuvate veergude liitväärtus Exceli töölehe tabelist.

VBA koodi selgitus

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

Määrake muutujad.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Määrake lehe nimi, millega me töötame (" ConcatenatingAllCol " on töövihiku lehe nimi).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Määrake tabeli nimi, millega me töötame (" TblConcatenateAll " on tabeli nimi meie andmekogumis).

 For Each iRow In iObj.ListRows 

Alustab iteratsiooni läbi iga tabeli rea.

 For Each iCol In iObj.ListColumns 

Alustab iteratsiooni läbi iga tabeli iga rea iga veeru.

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

Salvestab tulemuse, lõigates väärtused, mida iga rea iga veerg kannab. Pärast kõigi igas reas asuvate veergude läbitöötamist edastab ta tulemuse MsgBoxi. Seejärel alustab taas loopimist järgmises reas ja jätkab loopimist, kuni jõuab tabeli viimasele reale.

Loe edasi: Kuidas sorteerida Exceli VBAga mitu tabeli veergu (2 meetodit)

5. Iteratsiooni peatamine, kui VBA makroga tabeli ridade läbimise teel leitakse väärtus

Oletame, et soovite loop läbi ridade oma tabelis on ja lõpetada looping, kui ta leiab konkreetse väärtuse Seda saab teha lihtsa makrokoodiga.

Õpime, kuidas seda teha VBA Excelis.

Sammud:

  • Alguses avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Seejärel koodiaknas, koopia järgmine kood ja paste seda.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Hiljem, Käivita makro.
  • See on käivitada tsükkel ja peatada see, kui ta leiab konkreetse väärtuse. (" Edge ") vahemikus ja viskab tulemuseks on MsgBox .

Nagu ülaltoodud pildil näha, on hüpikakna MsgBox, mis näitab teile raku aadress, $B$10 , kus me leidsime määratud väärtuse, " Edge " .

VBA koodi selgitus

 Dim iData As Range 

Määrake muutuja.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData 

See kooditükk on siin selleks, et läbida ridu 1 kuni 15. Kui ta leiab konkreetse sõna " Edge ", siis edastab ta tulemuse koos selle lahtri aadressiga, kus sõna asub. Ta jätkab seda, kuni lõpetab sõna otsimisel kõigi andmete skaneerimise ridadelt 1 kuni 15. See jätkab seda, kuni ta lõpetab sõna otsimise.

Loe edasi: Kuidas sisestada või kustutada Exceli tabelist ridu ja veerge

6. VBA iga rea läbimiseks ja konkreetse väärtuse värvimiseks Excelis

Mis siis, kui te ei taha visata MsgBoxi määratud väärtuse lahtri aadressi? Te võite soovida, et värvida lahtrit, mis kannab väärtust mida te otsite.

Õpime, kuidas seda teha VBA makro.

Sammud:

  • Samamoodi nagu varem, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Pärast seda, Käivita makro.
  • See on alustab tsüklit ja peatab selle, kui leiab konkreetse väärtuse (" Edge ") vahemikus ja värvida lahtrit koos ColourIndex mis te koodis esitasite.

Nagu näete ülaltoodud pildilt, C ell B10 , kus me leidsime määratud väärtuse, " Edge " on värviline pärast koodi täitmist.

VBA koodi selgitus

 Dim iData As Range 

Määrake muutuja.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData 

See kooditükk on siin selleks, et läbida ridu 1 kuni 15. Kui ta leiab konkreetse sõna " Edge ", siis värvib ta lahtri, mis sisaldab sõna. Ta jätkab seda, kuni ta lõpetab kõigi ridade 1 kuni 15 andmete skaneerimise sõna otsimisel.

Loe edasi: Kuidas kasutada VLOOKUP tabeli massiivi Exceli lahtri väärtuse alusel

Sarnased lugemised

  • Kas TABLE-funktsioon on Excelis olemas?
  • Kuidas konverteerida tabel Exceli loendiks (3 kiiret viisi)
  • Exceli vahemiku teisendamine tabeliks (5 lihtsat meetodit)
  • Kasutage valemit Exceli tabelis tõhusalt (4 näidet)
  • Exceli tabeli nimi: kõik, mida peate teadma

7. Rakendage VBA-d, et käia läbi iga rea ja värvida iga paaritu rida Excelis

Eelmisest jaotisest oleme õppinud, kuidas värvida lahtrit, mis kannab kindlat väärtust. Selles jaotises õpime, kuidas teha loopeerida läbi iga tabeli rea ja värvida iga paaritu rida koos VBA makro Excelis.

Järgnevalt on kirjeldatud protsessi teostamise samme.

Sammud:

  • Nagu eespool näidatud, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Nüüd, Käivita makro ja vaadake järgmist pilti, et näha väljundit.

Kõik paaritu arvuga read on värvilised pärast kõikide töölehe tabelis olevate ridade läbimist.

VBA koodi selgitus

 Dim iRow As Long 

Määrake muutuja.

 With Range("B4").CurrentRegion 

Määrake vahemik, millega me töötame.

 For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

See osa koodist viitab iteratsioonile läbi kõigi ridade, alustades praeguse rea järgmisest reast, B4 . Kui rea numbrite jagamise mod 2ga on võrdne tagastatud rea numbriga, mis on salvestatud täisarvu tüüpi, siis värvib see kood kõik arvutusega eraldatud read koodis esitatud värviindeksiga. Ta jätkab kõigi ridade läbimist, kuni jõuab vahemiku lõppu.

8. Rakendage VBA-d, et läbida Exceli ridu ja värvida iga paariline rida

Eelmises jaotises õppisime, kuidas värvida tabeli iga paaritu rida. Selles jaotises õpime, kuidas teha Loop läbi iga tabeli rea ja värvida iga paariline rida VBA makroga Excelis.

Protsessi läbiviimise etappe käsitletakse allpool.

Sammud:

  • Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Järgmine, Käivita makro ja vaadake järgmist pilti, et näha tulemust.

Kõik paarisnumbrilised read on värvilised pärast kõikide töölehe tabelis olevate ridade läbimist.

VBA koodi selgitus

 Dim iRow As Long 

Määrake muutuja.

 With Range("B4").CurrentRegion 

Määrake vahemik, millega me töötame.

 For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With 

See kooditükk alustab iteratsiooni pärast kolme rida alates praegusest reast, B4 See värvib seda kõigepealt, seejärel suurendab rea arvu 2 võrra ja jätkab värvimist, kuni jõuab andmekogumi viimase reani.

9. Rakendage makro, et korrata ridu kuni tühja lahtrini Excelis

Kui soovite, et teie kood töötaks nagu see töötab Loop läbi kõigi tabeli ridade ja peatada, kui ta jõuab tühja lahtrisse. , siis on see lõik just teile. Te saate seda ülesannet täita nii koos FOR Loop ja Do-Until Loop Excelis VBA .

9.1. FOR-silmusega

Sammud loop läbi ridade tabelis kuni tühja lahtri FOR Loopiga aadressil VBA Excel on esitatud allpool.

Sammud:

  • Alguses avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Pärast seda, koopia järgmine kood ja paste see koodiaknasse.
 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 

Teie kood on nüüd valmis käivitamiseks.

  • Siis, Käivita makro ja tulemus on näidatud alloleval joonisel.

Pärast makro käivitamist on see hakkas looping läbi kõigi ridade tabelis ja kui see jõudis tühi lahter, lahter B8 , see peatas iteratsiooni .

VBA koodi selgitus

 Dim x As Integer 

Määrake muutuja.

 Application.ScreenUpdating = False 

Lülitage ekraani uuendamise sündmus välja.

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

Salvesta kõik read alates Lahter B4 kuni viimaseni.

 Range("B4").Select 

Valige Lahter B4 .

 For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next 

See kooditükk alustab kõikide ridade läbimist. Kui ta leiab reas tühja lahtri, siis valib selle ja jätkab ridade skaneerimist, kuni jõuab lõpuni.

 Application.ScreenUpdating = True 

Lülitage ekraani uuendamise sündmus sisse.

9.2. Koos Do-Until loopiga

Sammud tsükkel läbi ridade kuni tühja lahtrini Do-Until tsükliga aadressil VBA on esitatud allpool.

Sammud:

  • Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Teie kood on nüüd valmis käivitamiseks.

  • Hiljem, Käivita Makro. Tulemus on näidatud järgmisel gif-kujul.

Pärast makro käivitamist algas kõikide ridade läbimine tabelis ja kui see jõudis tühi lahter, lahter B8 , see peatas iteratsiooni .

VBA koodi selgitus

 Range("B4").Select 

Valige lahter, millest me töötame.

 Do Kuni IsEmpty(ActiveCell) 

Alustab ja jätkab tsüklit, kuni leitakse tühi lahter.

 ActiveCell.Offset(1, 0).Select Loop 

Kui reas leitakse tühi lahter, siis valige see ja lõpetage iteratsioon.

10. VBA makro, et korrata ridu kuni mitme tühja lahtrini Excelis

Eelmises jaotises õppisite, kuidas lõpetada tsükkel, kui leitakse tühi lahter. Aga mis siis, kui te ei taha peatada iteratsiooni enne, kui leitakse mitu tühja lahtrit, mitte ainult üks.

Sammud, et ring läbi ridade, kuni mitu tühja lahtrit leitakse tabelis koos VBA Excel on näidatud allpool.

Sammud:

  • Esiteks, avage Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Teie kood on nüüd valmis käivitamiseks.

  • Nüüd, Käivita makro ja vaata väljundit järgmises gifis.

Pärast makro käivitamist on see ei peatunud esimesel tühjal lahtril, lahtris B8. See peatus, kui ta leidis kaks järjestikust tühja lahtrit lahtris B16 .

VBA koodi selgitus

 Range("B4").Select 

Valige lahter, millest me töötame.

 Do Kuni IsEmpty(ActiveCell) ja IsEmpty(ActiveCell.Offset(1, 0)) 

Alustab ja jätkab tsüklit, kuni leitakse kaks järjestikust tühja lahtrit.

 ActiveCell.Offset(2, 0).Select Loop 

Kui leitakse kaks järjestikust tühja lahtrit, siis valige see ja lõpetage iteratsioon.

11. Embed VBA, et läbida ridu, ühendades kõik veerud, kuni Excel on tühi

Selles jaotises näidatakse, kuidas Loop läbi kõigi tabelis olevate ridade ja ühendab kõik veerud kuni tühja lahtrini. leitakse koos VBA Excel.

Õpime, kuidas seda teha VBA makro Excelis.

Sammud:

  • Alguses avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Siis, koopia järgmine kood ja paste see koodiaknasse.
 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 = "", iResult(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i End Sub 

Teie kood on nüüd valmis käivitamiseks.

  • Hiljem, Käivita makro ja vaata tulemuse kohta järgmist gif'i.

Nagu näete ülaltoodud gif on, et seal on pop-up MsgBox näidates teile kõigi igas reas asuvate veergude liitväärtus oma Exceli töölehe tabelist. Kuid see peatus, kui see jõudis tühja lahtrisse .

VBA koodi selgitus

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

Määrake muutujad.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Määrake lehe nimi, millega me töötame (" ConcatenatingAllColUntilBlank " on töövihiku lehe nimi).

 iValue = Range("B4").CurrentRegion 

Määrake vahemik, millega me töötame.

 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 

See kooditükk alustab tsüklit massiiviga. Ta jätkab tsüklit, kuni ta tagastab massiivist suurima alamkirja ja esimese dimensiooni alumise piiri. Seejärel siseneb ta teise dimensiooni alumise piiri väljavõtmise iteratsiooni. Pärast seda edastab ta kõik väljavõetud väärtused massiivi iResult muutuja, ühendades need ja visates tulemuse MsgBoxi. See jätkab seda, kuni leiab tühja lahtri.

Kokkuvõte

Kokkuvõtteks näitas see artikkel teile 11 tõhusat meetodit, kuidas tsükkel läbi tabeli ridade Excelis koos VBA makro . ma loodan, et see artikkel oli teile väga kasulik. Võite julgelt esitada mis tahes küsimusi selle teema kohta.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.