VBA om door rijen van tabel in Excel te lussen (11 methoden)

  • Deel Dit
Hugh West

Wanneer we een grote dataset in onze Excel-werkmap hebben, is het soms handig als we door rijen kunnen lussen om de specifieke resultaten die we willen krijgen eruit te halen. Het implementeren van VBA is de meest effectieve, snelste en veiligste methode om elke bewerking in Excel uit te voeren. In dit artikel laten we u 11 verschillende methoden zien om loop door rijen van een tabel in Excel met de VBA-macro .

Werkboek downloaden

U kunt de gratis oefen Excel-werkmap hier downloaden.

Lus door rijen van tabel met VBA.xlsm

11 Methoden met VBA om door rijen van een tabel in Excel te lussen

In dit deel leert u hoe u loop door rijen van een tabel met 11 verschillende methoden, zoals loop door rijen tot een lege cel, loop door rijen tot een specifieke waarde is gevonden, loop door rijen en kleur een specifieke cel etc. met VBA macro in Excel.

Hierboven staat de voorbeelddataset die dit artikel zal volgen om de methoden te beschrijven.

1. Embed VBA om door elke cel in elke rij van een tabel te lussen op celreferentienummer

Als u loop door elke cel in elke rij van een tabel in uw Excel-werkblad en krijg de celreferentienummer als de retourwaarde volg dan de onderstaande stappen.

Stappen:

  • Druk in het begin op Alt + F11 op uw toetsenbord of ga naar de tab Ontwikkelaar -> Visual Basic om te openen Visual Basic-editor .

  • Vervolgens klikt u in het pop-up codevenster in de menubalk op Invoegen -> Module .

  • Dan, kopie de volgende code en pasta in het codevenster.
 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 

Uw code is nu klaar om te draaien.

  • Druk nu op F5 op uw toetsenbord of selecteer in de menubalk Run -> Run Sub/UserForm U kunt ook gewoon op de klein pictogram Play in de submenubalk om de macro uit te voeren.

  • Of om de dataset en het resultaat visueel te bekijken en te vergelijken, kunt u red de code en ga terug naar het werkblad van belang.
  • Van daaruit kunt u klikken op Macro's van de Ontwikkelaar tab, selecteer de naam van de macro, en klik dan op Ren .

Na de succesvolle uitvoering van de code, kijk naar het bovenstaande gif om het resultaat te zien. Er zal een pop-up verschijnen MsgBox die je de celreferentienummer van elke cel van elke rij uit de tabel in uw Excel-blad.

VBA-code uitleg

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

Om het laatste rijnummer in de tabel te krijgen door te zoeken in kolom B.

 EersteRij = 4 

Stel rij nummer 4 in, waar onze gegevens beginnen.

 i = FirstRow 

Om te lussen vanaf de eerste rij.

 EersteKolom = 2 

Stel kolom nummer 2 in, waar onze gegevens beginnen.

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

Loop door de rijen om het laatste kolomnummer te krijgen door de huidige rij te evalueren tot de laatste rij.

 Count = FirstColumn Do Until Count> LastColumn 

Increment looping van de kolom vanaf de eerste rij tot de laatste rij.

 MsgBox "Momenteel itererende cel " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Dit stukje code verwerkt, verhoogt na elke iteratie en toont het resultaat van de code.

Lees meer: Nieuwe rij automatisch toevoegen in een Excel-tabel

2. VBA toepassen om elke cel in elke rij op waarde te lussen

Als u lus door elke cel in elke rij van een tabel en gooi de waarde in de cellen als de retourwaarde dan zal deze sectie je helpen uit te zoeken hoe je dat doet met VBA Excel.

U kunt dat doen met de ListObject en met de DataBodyRange eigenschap van VBA We tonen u de macrocode met zowel het object als de eigenschap.

2.1. Met het ListObject

De stappen naar lus door elke cel in elke rij van een tabel per celwaarde met het ListObject in VBA Excel staan hieronder.

Stappen:

  • Dezelfde manier als voorheen, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, in het codevenster, kopie de volgende code en pasta het.
 Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range Voor elke iListRow in ActiveSheet.ListObjects("TblStudents").ListRows Voor elke iCol in iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub 

Uw code is nu klaar om te draaien.

  • Daarna, Ren de macro zoals we die in de bovenstaande sectie hebben laten zien. Het resultaat is te zien in het onderstaande gif.

Er zal een pop-up zijn MsgBox die je de de waarde van elke cel van elke rij uit de tabel in uw Excel-blad.

VBA-code uitleg

 Dim iListRow als ListRow Dim iCol als Range 

Definieer de variabelen.

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

Dit stukje code begint eerst met het doorlopen van de rijen in de tabel (" TblStudenten "Daarna wordt de waarde van de cel doorgegeven in MsgBox. Vervolgens wordt naar de volgende kolom gegaan. Nadat alle kolommen van een rij zijn doorlopen, wordt naar de volgende rij gegaan en wordt het iteratieproces voortgezet tot de laatste rij.

2.2. Met de eigenschap DataBodyRange

Om specifieker te zijn met de geëxtraheerde gegevens uit de tabel, kunt u de DataBodyRange eigenschap van ListObject . DataBodyRange eigenschap gooit u het resultaat met het bereik uit de lijst tussen de koprij en de invoegrij.

De stappen hoe je lus door elke cel in elke rij van een tabel per celwaarde met de DataBodyRange in VBA Excel staan hieronder.

Stappen:

  • Zoals eerder aangegeven, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 Sub LoopThroughRowsByRange() Dim iRange As Range Voor Elke iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Uw code is nu klaar om te draaien.

  • Later, Ren de macro en kijk naar het volgende gif om de uitvoer te zien.

Er zal een pop-up zijn MsgBox die je de de waarde van elke cel van elke rij uit de tabel in uw Excel-blad.

VBA-code uitleg

 Dim iRange Als Bereik 

Definieer de variabele.

 Voor Elke iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Volgende iRange 

Dit stukje code begint eerst met het doorlopen van de rijen in de tabel (" TblStdnt " is onze tabelnaam) en geeft een bereik van waarden exclusief de hoofdrij van de tabel. Geef dan de waarde van het bereik door in MsgBox. Dan gaat het naar de volgende rij om het bereik te extraheren en gaat het iteratieproces door tot de laatste rij.

3. VBA-macro toepassen om rijen te doorlopen door kolommen aan elkaar te koppelen in Excel

Dit deel laat zien hoe u loop door rijen in een tabel door de kolommen aaneen te rijgen met de eerste kolom van uw dataset in Excel.

Bijvoorbeeld, voor onze dataset, zullen we eerst itereren door John in cel B5 en 101 in cel C5 door ze aan elkaar te rijgen en dan te itereren door John in cel B5 en 89 in cel D5 door ze aan elkaar te rijgen van rij 5 .

Wij laten u zien hoe u dat kunt doen met VBA macro in Excel.

Stappen:

  • In het begin, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Ten tweede, in het codevenster, kopie de volgende code en pasta het.
 Sub LoopThroughRowsByConcatenatingCol() Dim iRange Als Bereik Dim iValue Als String Met ActiveSheet.ListObjects("TblConcatenate") Voor Elke iRange In .DataBodyRange Als iRange.Column = .DataBodyRange.Column Dan iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Volgende iRange End With End Sub 

Uw code is nu klaar om te draaien.

  • Ten derde, Ren Kijk naar het onderstaande gif om het resultaat te zien.

Er zal een pop-up zijn MsgBox die je de samengevoegde waarde van de cellen van de eerste en de tweede kolom ( John in cel B5 van Colum B en 101 in cel C5 van kolom C ) en dan de samengevoegde waarde van de cellen van de eerste en de derde kolom ( John in cel B5 van Colum B en 89 in cel D5 van kolom D ) van rij nummer 5 En deze aaneenschakeling gaat door tot de laatste rij van de tabel is bereikt.

VBA-code uitleg

 Dim iRange als Bereik Dim iValue als String 

Definieer de variabele.

 Met ActiveSheet.ListObjects("TblConcatenate") 

Vervolgens selecteert de code de tabel van het actieve blad (" TblConcatenate " in onze tabelnaam).

 Voor Elke iRange In .DataBodyRange Als iRange.Column = .DataBodyRange.Column Dan iValue = iRange.Value 

Daarna begint het itereren van elke rij met uitzondering van de kop van de kolom. Als de iteratie een overeenkomst vindt in het bereik tussen de kop van de kolom en de rijen dan slaat het de waarde op in de iWaarde variabel.

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

Als niet aan de bovenstaande voorwaarde wordt voldaan, gooit de code de waarde in de MsgBox en beëindigt de voorwaarde. Daarna gaat de code verder met het lussen in een ander bereik en gaat door met itereren tot de eindrij. Zodra de eindrij is bereikt, beëindigt de macro de uitvoering van de code.

4. Embed Macro om rijen te doorlopen door alle kolommen in een tabel in Excel aan elkaar te koppelen

In dit deel leren we hoe we alle kolommen die elke rij bevat aan elkaar rijgen in de dataset met VBA macro in Excel.

De stappen om dat uit te voeren staan hieronder.

Stappen:

  • Ten eerste, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 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 

Uw code is nu klaar om te draaien.

  • Volgende, Ren de macrocode.

Zoals u kunt zien in het bovenstaande gif is er een pop-up MsgBox die je de samengevoegde waarde van alle kolommen in elke rij uit de tabel van uw Excel-werkblad.

VBA-code uitleg

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

Definieer de variabelen.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Stel de bladnaam in waarmee we gaan werken (" ConcatenatingAllCol " is de bladnaam in de werkmap).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Definieer de tabelnaam waarmee we zullen werken (" TblConcatenateAll " is de tabelnaam in onze dataset).

 Voor elke iRow in iObj.ListRows 

Begint de iteratie door elke rij van de tabel.

 Voor elke iCol in iObj.ListColumns 

Begint de iteratie door elke kolom van elke rij van de tabel.

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

Slaat het resultaat op door de waarden die elke kolom van elke rij draagt te kruisen. Na het scannen van alle kolommen die in elke rij staan, geeft hij het resultaat door in de MsgBox. Dan begint hij opnieuw te lussen in de volgende rij en gaat hij door tot hij de laatste rij van de tabel bereikt.

Lees meer: Hoe meerdere kolommen van een tabel sorteren met Excel VBA (2 methoden)

5. Iteratie stoppen als waarde wordt gevonden door rijen van een tabel te doorlopen met VBA-macro

Stel dat u lus door de rijen van uw tabel heeft en de lus stopt wanneer het een specifieke waarde vindt U kunt dat doen met een simpele macro code.

Laten we leren hoe we dat moeten doen VBA in Excel.

Stappen:

  • In het begin, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, in het codevenster, kopie de volgende code en pasta het.
 Sub LoopDoorRijenVoorWaarde() Dim iData Als Bereik Voor Elke iData In Bereik("1:15") Als iData.Waarde = "Rand" Dan MsgBox "Rand is gevonden op " & iData.Adres End If Volgende iData End Sub 

Uw code is nu klaar om te draaien.

  • Later, Ren de macro.
  • Het zal begin de lus en stop hem wanneer hij de specifieke waarde vindt (" Rand ") in het bereik en gooit de resulteren in de MsgBox .

Zoals u in de bovenstaande afbeelding kunt zien, is er een pop-up MsgBox die u de celadres, $B$10 waar we de opgegeven waarde hebben gevonden, " Rand " .

VBA-code uitleg

 Dim iData Als Bereik 

Definieer de variabele.

 Voor Elke iData In Range("1:15") Als iData.Value = "Edge" Dan MsgBox "Edge is gevonden op " & iData.Address End If Volgende iData 

Dit stukje code is hier om door de rijen van 1 tot 15 te lopen. Als het specifieke woord " Rand "Dan geeft hij het resultaat door met het celadres dat het woord bevat. Hij blijft dit doen tot hij klaar is met het scannen van alle gegevens van rij 1 tot 15 om het woord te zoeken.

Lees meer: Rijen en kolommen invoegen of verwijderen uit Excel-tabellen

6. VBA om elke rij te doorlopen en een specifieke waarde te kleuren in Excel

Wat als u het celadres van de opgegeven waarde niet in de MsgBox wilt gooien? U kunt misschien kleur de cel die de waarde draagt waar je naar op zoek bent.

Laten we leren hoe we dat doen met VBA macro.

Stappen:

  • Dezelfde manier als voorheen, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 Sub LoopDoorRijenAndKleur() Dim iData Als Bereik Voor Elke iData In Bereik("1:15") Als iData.Waarde = "Rand" Dan iData.Interieur.KleurIndex = 8 Einde Als Volgende iData Einde Sub 

Uw code is nu klaar om te draaien.

  • Daarna, Ren de macro.
  • Het zal start de lus en stopt hem wanneer hij de specifieke waarde vindt (" Rand ") in het bereik en kleur de cel met de ColourIndex die je in de code hebt opgegeven.

Zoals u kunt zien op de afbeelding hierboven, C ell B10 waar we de opgegeven waarde hebben gevonden, " Rand " is gekleurd na de uitvoering van de code.

VBA-code uitleg

 Dim iData Als Bereik 

Definieer de variabele.

 Voor Elke iData In Range("1:15") Als iData.Value = "Edge" Dan iData.Interior.ColorIndex = 8 End If Volgende iData 

Dit stukje code is hier om door de rijen van 1 tot 15 te lopen. Als het specifieke woord " Rand "Hij blijft dit doen tot hij klaar is met het scannen van alle gegevens van rij 1 tot 15, op zoek naar het woord.

Lees meer: Hoe te gebruiken VLOOKUP tabel array op basis van celwaarde in Excel

Vergelijkbare lezingen

  • Bestaat de TABLE-functie in Excel?
  • Hoe tabel naar lijst converteren in Excel (3 snelle manieren)
  • Bereik omzetten naar tabel in Excel (5 eenvoudige methodes)
  • Formule in een Excel-tabel effectief gebruiken (met 4 voorbeelden)
  • Excel-tabelnaam: alles wat u moet weten

7. VBA toepassen om elke rij te doorlopen en elke oneven rij in Excel te kleuren

In het vorige hoofdstuk hebben we geleerd hoe we een cel met een specifieke waarde kunnen inkleuren. In dit hoofdstuk leren we hoe we lus door elke rij van een tabel en kleur elke oneven rij met VBA macro in Excel.

De stappen om het proces uit te voeren worden hieronder beschreven.

Stappen:

  • Zoals eerder aangegeven, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 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 

Uw code is nu klaar om te draaien.

  • Nu, Ren de macro en bekijk de volgende afbeelding om de uitvoer te zien.

Alle rijen met oneven nummers zijn gekleurd na het doorlopen van alle rijen in de tabel van het werkblad.

VBA-code uitleg

 Dim iRow als Lang 

Definieer de variabele.

 Met Range("B4").CurrentRegion 

Bepaal het bereik waarmee we gaan werken.

 Voor iRow = 2 Tot .Rows.Count Als iRow / 2 = Int(iRow / 2) Dan .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

Dit deel van de code verwijst naar de iteratie door alle rijen, beginnend bij de volgende rij van de huidige rij, B4 Indien de mod van het delen van de rijnummers door 2 gelijk is aan het geretourneerde rijnummer opgeslagen in een geheel getal, dan kleurt deze code alle rijen die door de berekening worden geëxtraheerd met de in de code opgegeven kleurindex. Hij blijft alle rijen doorlopen tot hij het einde van het bereik bereikt.

8. VBA toepassen om rijen te doorlopen en elke even rij in Excel te kleuren

In het vorige deel hebben we geleerd hoe we elke oneven rij van een tabel kunnen kleuren. In dit deel zullen we leren hoe we lus door elke rij van een tabel en kleur elke even rij met een VBA macro in Excel.

De stappen om het proces uit te voeren worden hieronder besproken.

Stappen:

  • Ten eerste, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 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 

Uw code is nu klaar om te draaien.

  • Volgende, Ren de macro en bekijk de volgende afbeelding om het resultaat te zien.

Alle even genummerde rijen zijn gekleurd na het doorlopen van alle rijen in de tabel van het werkblad.

VBA-code uitleg

 Dim iRow als Lang 

Definieer de variabele.

 Met Range("B4").CurrentRegion 

Bepaal het bereik waarmee we gaan werken.

 Voor iRow = 3 Tot .Rows.Count Stap 2 .Rows(iRow).Interior.ColorIndex = 8 Volgende Einde Met 

Dit stukje code begint te itereren na de drie rijen vanaf de huidige rij, B4 Het kleurt het eerst, verhoogt dan het aantal rijen met 2 en blijft het kleuren tot het de laatste rij van de dataset bereikt.

9. Macro toepassen om rijen te doorlopen tot lege cel in Excel

Als je wilt dat je code werkt zoals hij zal werken loop door alle rijen van de tabel en stop wanneer het een lege cel bereikt dan is deze sectie voor u. U kunt die taak zowel met de FOR-lus en de Doe tot lus in Excel VBA .

9.1. Met FOR-lus

Stappen naar lus door rijen in een tabel tot een lege cel met FOR Loop in VBA Excel staan hieronder.

Stappen:

  • In het begin, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Daarna, kopie de volgende code en pasta in het codevenster.
 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 

Uw code is nu klaar om te draaien.

  • Dan, Ren de macro en het resultaat staat in het onderstaande gif.

Na het uitvoeren van de macro begon door alle rijen te lopen in de tabel en zodra het de lege cel, cel B8 het stopte de iteratie .

VBA-code uitleg

 Dim x als geheel getal 

Definieer de variabele.

 Application.ScreenUpdating = False 

Schakel de scherm update gebeurtenis uit.

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

Bewaar alle rijen vanaf Cel B4 tot de laatste.

 Range("B4").Select 

Selecteer Cel B4 .

 Voor x = 1 tot NumRows ActiveCell.Offset(1, 0).Select Next 

Dit stukje code begint alle rijen te doorlopen. Wanneer het een lege cel in een rij vindt, selecteert het die en gaat verder met het scannen van de rijen tot het einde.

 Application.ScreenUpdating = True 

Schakel de gebeurtenis schermupdate in.

9.2. Met Do-Until lus

Stappen naar lus door rijen tot een lege cel met Do-Until lus in VBA worden hieronder gegeven.

Stappen:

  • Ten eerste, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Uw code is nu klaar om te draaien.

  • Later, Ren Het resultaat wordt getoond in het volgende gif.

Na het uitvoeren van de macro, begon het looping door alle rijen in de tabel en zodra het de lege cel, cel B8 het stopte de iteratie .

VBA-code uitleg

 Range("B4").Select 

Selecteer de cel van waaruit we gaan werken.

 Doe tot IsEmpty(ActiveCell) 

Begint en gaat door met lussen totdat een lege cel is gevonden.

 ActiveCell.Offset(1, 0).Select Loop 

Wanneer in een rij een lege cel wordt gevonden, selecteert u die en stopt u de iteratie.

10. VBA Macro om rijen te doorlopen tot meerdere lege cellen in Excel

In het vorige deel hebt u geleerd hoe u de lus kunt stoppen wanneer een lege cel wordt gevonden. Maar wat als u de iteratie niet wilt stoppen totdat er meerdere lege cellen worden gevonden in plaats van slechts één.

De stappen naar loop door rijen tot meerdere lege cellen staan in een tabel met VBA Excel zijn hieronder weergegeven.

Stappen:

  • Ten eerste, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Uw code is nu klaar om te draaien.

  • Nu, Ren de macro en zie het volgende gif voor de uitvoer.

Na het uitvoeren van de macro stopte niet bij de eerste lege cel, cel B8. Het stopte toen het twee opeenvolgende lege cellen op cel B16 .

VBA-code uitleg

 Range("B4").Select 

Selecteer de cel van waaruit we gaan werken.

 Doe Totdat IsEmpty(ActiveCell) En IsEmpty(ActiveCell.Offset(1, 0)) 

Begint en gaat door met lussen totdat twee opeenvolgende lege cellen zijn gevonden.

 ActiveCell.Offset(2, 0).Select Loop 

Wanneer twee opeenvolgende lege cellen worden gevonden, selecteert u deze en stopt u de iteratie.

11. VBA inbouwen om door rijen te lussen door alle kolommen aan elkaar te rijgen tot ze leeg zijn in Excel

Dit deel laat zien hoe u Loop door alle rijen in een tabel en voeg alle kolommen samen tot een lege cel. wordt gevonden met VBA Excel.

Laten we leren hoe we dat doen met VBA macro in Excel.

Stappen:

  • In het begin, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Dan, kopie de volgende code en pasta in het codevenster.
 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 

Uw code is nu klaar om te draaien.

  • Later, Ren de macro en zie het volgende gif voor het resultaat.

Zoals u kunt zien in het bovenstaande gif is er een pop-up MsgBox die je de samengevoegde waarde van alle kolommen in elke rij uit de tabel van uw Excel-werkblad. Maar het stopte zodra het de lege cel bereikte .

VBA-code uitleg

 Dim iSheet Als Werkblad Dim iValue Als Variant Dim iResult Als String 

Definieer de variabelen.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Stel de bladnaam in waarmee we gaan werken (" ConcatenatingAllColUntilBlank " is de bladnaam in de werkmap).

 iWaarde = Range("B4").CurrentRegion 

Bepaal het bereik waarmee we gaan werken.

 Voor i = 2 tot UBound(iValue, 1) iResult = "" Voor J = 1 tot UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Volgende J MsgBox iResult Volgende i 

Dit stukje code begint de lus met de array. Het gaat door met de lus totdat het de grootste subscript van de array en de ondergrens van de eerste dimensie teruggeeft. Dan gaat het de iteratie in om de ondergrens van de tweede dimensie te extraheren. Daarna geeft het alle geëxtraheerde waarden door aan de iResult variabele door ze aan elkaar te rijgen en het resultaat in de MsgBox te gooien. Dat blijft hij doen tot hij een lege cel vindt.

Conclusie

Tot slot heeft dit artikel u 11 doeltreffende methoden getoond om loop door rijen van een tabel in Excel met de VBA-macro Ik hoop dat dit artikel nuttig voor u is geweest. Voel u vrij om vragen te stellen over dit onderwerp.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.