VBA zum Durchlaufen von Tabellenzeilen in Excel (11 Methoden)

  • Teile Das
Hugh West

Wenn wir einen großen Datensatz in unserer Excel-Arbeitsmappe haben, ist es manchmal praktisch, wenn wir in einer Schleife durch die Zeilen gehen können, um die gewünschten Ergebnisse zu erhalten. VBA ist die effektivste, schnellste und sicherste Methode, um jede Operation in Excel auszuführen. In diesem Artikel zeigen wir Ihnen 11 verschiedene Methoden, wie Sie Schleife durch Zeilen einer Tabelle in Excel mit der Option VBA-Makro .

Arbeitsbuch herunterladen

Sie können die kostenlose Excel-Arbeitsmappe für die Praxis hier herunterladen.

Schleife durch Tabellenzeilen mit VBA.xlsm

11 Methoden mit VBA zum Durchlaufen von Tabellenzeilen in Excel

In diesem Abschnitt erfahren Sie, wie Sie Schleife durch Zeilen einer Tabelle mit 11 verschiedenen Methoden, z. B. Schleife durch die Zeilen, bis eine leere Zelle gefunden wird, Schleife durch die Zeilen, bis ein bestimmter Wert gefunden wird, Schleife durch die Zeilen und Färbung einer bestimmten Zelle usw. mit VBA Makro in Excel.

Oben sehen Sie den Beispieldatensatz, der in diesem Artikel zur Beschreibung der Methoden herangezogen wird.

1 VBA einbetten, um eine Schleife durch jede Zelle in jeder Zeile einer Tabelle nach Zellreferenznummer zu ziehen

Wenn Sie möchten, dass Schleife durch jede Zelle in jeder Zeile einer Tabelle in Ihrem Excel-Arbeitsblatt und erhalten die Zellreferenznummer als Rückgabewert dann folgen Sie den unten beschriebenen Schritten.

Schritte:

  • Drücken Sie zu Beginn Alt + F11 auf Ihrer Tastatur oder gehen Sie auf die Registerkarte Entwickler -> Visual Basic zu öffnen Visual Basic-Editor .

  • Klicken Sie dann im Pop-up-Codefenster in der Menüleiste auf Einfügen -> Modul .

  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Drücken Sie nun F5 auf Ihrer Tastatur oder wählen Sie in der Menüleiste Run -> Run Sub/UserForm Sie können auch einfach auf die Schaltfläche kleines Play-Symbol in der Untermenüleiste, um das Makro auszuführen.

  • Um den Datensatz und das Ergebnis visuell zu sehen und zu vergleichen, können Sie auch speichern den Code und zurück zum Arbeitsblatt von Interesse.
  • Von dort aus können Sie auf Makros von der Entwickler tab, wählen Sie den Makronamen, und klicken Sie dann auf ausführen. .

Nach der erfolgreichen Ausführung des Codes sehen Sie das Ergebnis in der obigen Grafik. Es erscheint ein Pop-up-Fenster MsgBox und zeigt Ihnen die Zellreferenznummer jeder Zelle in jeder Zeile aus der Tabelle in Ihrem Excel-Blatt.

VBA-Code-Erläuterung

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

Um die letzte Zeilennummer in der Tabelle zu erhalten, suchen Sie in Spalte B.

 FirstRow = 4 

Stellen Sie die Zeile Nummer 4 ein, in der unsere Daten beginnen.

 i = ErsteZeile 

Schleife von der ersten Zeile an.

 ErsteSpalte = 2 

Stellen Sie die Spalte Nummer 2 ein, in der unsere Daten beginnen.

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

Starten Sie eine Schleife durch die Zeilen, um die letzte Spaltennummer zu ermitteln, indem Sie die aktuelle Zeile bis zur letzten Zeile auswerten.

 Count = FirstColumn Do Until Count> LastColumn 

Inkrementelle Schleifenbildung der Spalte von der ersten bis zur letzten Zeile.

 MsgBox "Derzeitige Iterationszelle " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Dieses Codestück dient der Verarbeitung, der Inkrementierung nach jeder Iteration und der Anzeige des Ergebnisses des Codes.

Lesen Sie mehr: Automatisches Hinzufügen einer neuen Zeile in einer Excel-Tabelle

2) VBA implementieren, um jede Zelle in jeder Zeile nach Wert zu durchlaufen

Wenn Sie möchten, dass jede Zelle in jeder Zeile einer Tabelle in einer Schleife durchlaufen und den Wert, der sich in den Zellen befindet, als Rückgabewert ausgeben dann hilft Ihnen dieser Abschnitt, herauszufinden, wie Sie das mit VBA Excel.

Das können Sie mit dem ListObject und mit dem DataBodyRange Eigenschaft von VBA Wir zeigen Ihnen den Makrocode sowohl für das Objekt als auch für die Eigenschaft.

2.1. mit dem ListObject

Die Schritte zum Schleife durch jede Zelle in jeder Zeile einer Tabelle nach Zellwert mit dem ListObject in VBA Excel sind unten angegeben.

Schritte:

  • Auf die gleiche Weise wie zuvor, öffnen Sie Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, im Code-Fenster, kopieren. den folgenden Code und einfügen es.
 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 

Ihr Code ist nun einsatzbereit.

  • Und dann, ausführen. das Makro wie im obigen Abschnitt gezeigt. Das Ergebnis ist in der folgenden Grafik zu sehen.

Es wird ein Pop-up geben MsgBox und zeigt Ihnen die Wert, der von jeder Zelle in jeder Zeile getragen wird aus der Tabelle in Ihrem Excel-Blatt.

VBA-Code-Erläuterung

 Dim iListRow As ListRow Dim iCol As Range 

Definieren Sie die Variablen.

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

Dieses Codestück beginnt zunächst mit dem Durchlaufen der Zeilen in der Tabelle (" TblStudenten " ist unser Tabellenname). Dann gibt man Spalten für jede Zeile ein. Danach übergibt man den Wert der Zelle in MsgBox. Dann geht man zur nächsten Spalte. Nachdem man alle Spalten einer Zeile durchlaufen hat, geht man zur nächsten Zeile und setzt den Iterationsprozess bis zur letzten Zeile fort.

2.2 Mit der Eigenschaft DataBodyRange

Um mit den aus der Tabelle extrahierten Daten genauer zu sein, können Sie die DataBodyRange Eigenschaft von ListObject . DataBodyRange liefert Ihnen das Ergebnis, das den Bereich aus der Liste zwischen der Kopfzeile und der Einfügezeile enthält.

Die Schritte, wie Sie Schleife durch jede Zelle in jeder Zeile einer Tabelle nach Zellwert mit dem DataBodyRange in VBA Excel sind unten angegeben.

Schritte:

  • Wie bereits erwähnt, öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Ihr Code ist nun einsatzbereit.

  • Später, ausführen. das Makro und sehen Sie sich das folgende Bild an, um die Ausgabe zu sehen.

Es wird ein Pop-up geben MsgBox und zeigt Ihnen die Wert, der von jeder Zelle in jeder Zeile getragen wird aus der Tabelle in Ihrem Excel-Blatt.

VBA-Code-Erläuterung

 Dim iRange As Range 

Definieren Sie die Variable.

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

Dieses Codestück beginnt zunächst mit dem Durchlaufen der Zeilen in der Tabelle (" TblStdnt " ist unser Tabellenname) und gibt einen Wertebereich mit Ausnahme der Kopfzeile der Tabelle zurück. Dann wird der Wert des Bereichs in MsgBox übergeben. Dann geht es zur nächsten Zeile, um den Bereich zu extrahieren und setzt den Iterationsprozess bis zur letzten Zeile fort.

3 VBA-Makro anwenden, um Zeilen durch Verkettung von Spalten in Excel zu durchlaufen

In diesem Abschnitt wird gezeigt, wie man Schleife durch Zeilen in einer Tabelle durch Verkettung der Spalten mit der ersten Spalte aus Ihrem Datensatz in Excel.

Für unseren Datensatz zum Beispiel werden wir zunächst durch die folgenden Punkte iterieren John in Zelle B5 und 101 in Zelle C5 durch Verkettung und anschließendem Iterieren durch John in Zelle B5 und 89 in Zelle D5 durch Verkettung aus Reihe 5 .

Wir zeigen Ihnen, wie Sie das machen können VBA Makro in Excel.

Schritte:

  • Zunächst öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Zweitens, im Code-Fenster, kopieren. den folgenden Code und einfügen es.
 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 

Ihr Code ist nun einsatzbereit.

  • Drittens, ausführen. Das Ergebnis ist in der folgenden Grafik zu sehen.

Es wird ein Pop-up geben MsgBox und zeigt Ihnen die verketteter Wert der Zellen der ersten und der zweiten Spalte ( John in Zelle B5 von Colum B und 101 in Zelle C5 aus Spalte C ) und dann die verketteter Wert der Zellen der ersten und der dritten Spalte ( John in Zelle B5 von Colum B und 89 in Zelle D5 von Spalte D ) von Zeile Nummer 5 Und dieser Verkettungsvorgang wird fortgesetzt, bis die letzte Zeile der Tabelle erreicht ist.

VBA-Code-Erläuterung

 Dim iRange As Range Dim iValue As String 

Definieren Sie die Variable.

 With ActiveSheet.ListObjects("TblVerkettung") 

Dann wählt der Code die Tabelle aus dem aktiven Blatt (" TblVerkettung " in unserem Tabellennamen).

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

Wenn die Iteration eine Übereinstimmung im Bereich zwischen der Spaltenüberschrift und den Zeilen findet, wird der Wert in der Datei iWert variabel.

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

Wenn die obige Bedingung nicht erfüllt wird, wirft der Code den Wert in die MsgBox und beendet die Bedingung. Danach geht er zu einer Schleife in einem anderen Bereich über und setzt die Iteration bis zur Endzeile fort. Sobald er die Endzeile erreicht, beendet das Makro die Codeausführung.

4. embed-Makro zur Iteration durch Zeilen durch Verkettung aller Spalten in einer Tabelle in Excel

In diesem Abschnitt lernen wir, wie man alle Spalten, die jede Zeile enthält, zu verketten im Datensatz mit VBA Makro in Excel.

Die Schritte zur Ausführung sind unten aufgeführt.

Schritte:

  • Erstens: Öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Nächste, ausführen. den Makrocode.

Wie Sie aus dem obigen Bild ersehen können, gibt es ein Pop-up MsgBox und zeigt Ihnen die verketteter Wert aller Spalten, die sich in jeder Zeile befinden aus der Tabelle Ihres Excel-Arbeitsblatts.

VBA-Code-Erläuterung

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

Definieren Sie die Variablen.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Legen Sie den Blattnamen fest, mit dem wir arbeiten werden (" Verkettung vonAllCol " ist der Blattname in der Arbeitsmappe).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Definieren Sie den Tabellennamen, mit dem wir arbeiten werden (" TblConcatenateAll " ist der Name der Tabelle in unserem Datensatz).

 For Each iRow In iObj.ListRows 

Startet die Iteration durch jede Zeile der Tabelle.

 For Each iCol In iObj.ListColumns 

Startet die Iteration durch jede Spalte jeder Zeile der Tabelle.

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

Speichern Sie das Ergebnis, indem Sie die Werte jeder Spalte jeder Zeile schneiden. Nachdem Sie alle Spalten in jeder Zeile gescannt haben, übergeben Sie das Ergebnis in der MsgBox. Dann beginnt die Schleife in der nächsten Zeile und setzt sie fort, bis sie die letzte Zeile der Tabelle erreicht.

Lesen Sie mehr: Wie man mehrere Spalten einer Tabelle mit Excel VBA sortiert (2 Methoden)

5. stoppen Sie die Iteration, wenn ein Wert gefunden wurde, indem Sie mit dem VBA-Makro durch die Zeilen einer Tabelle schleifen

Angenommen, Sie möchten eine Schleife durch die Zeilen Ihrer Tabelle zu ziehen und die Schleife anzuhalten, wenn sie einen bestimmten Wert findet Sie können dies mit einem einfachen Makrocode tun.

Wir wollen lernen, wie das geht VBA in Excel.

Schritte:

  • Zunächst öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, im Code-Fenster, kopieren. den folgenden Code und einfügen es.
 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 

Ihr Code ist nun einsatzbereit.

  • Später, ausführen. das Makro.
  • Sie wird Starten Sie die Schleife und stoppen Sie sie, wenn sie einen bestimmten Wert gefunden hat. (" Kante ") in den Bereich und wirft die ergeben sich die MsgBox .

Wie Sie in der obigen Abbildung sehen können, gibt es ein Pop-up-MSgBox, das Ihnen die Zelladresse, $B$10 , wo wir den angegebenen Wert gefunden haben, " Kante " .

VBA-Code-Erläuterung

 Dim iData As Range 

Definieren Sie die Variable.

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

Dieser Teil des Codes dient dazu, die Zeilen von 1 bis 15 in einer Schleife zu durchlaufen, wenn er das Wort " Kante "Dies wird so lange fortgesetzt, bis alle Daten in den Zeilen 1 bis 15 auf der Suche nach dem Wort durchsucht wurden.

Lesen Sie mehr: Einfügen oder Löschen von Zeilen und Spalten in einer Excel-Tabelle

6 VBA zum Durchlaufen jeder Zeile und Einfärben eines bestimmten Wertes in Excel

Wenn Sie die Zelladresse des angegebenen Wertes nicht in der MsgBox ausgeben möchten, können Sie Folgendes tun die Zelle, die den Wert trägt, einfärben die Sie suchen.

Wir lernen, wie man das macht mit VBA Makro.

Schritte:

  • Auf die gleiche Weise wie zuvor, öffnen Sie Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Und dann, ausführen. das Makro.
  • Sie wird die Schleife zu starten und zu beenden, wenn sie einen bestimmten Wert findet (" Kante ") im Bereich und die Zelle einfärben mit dem ColourIndex die Sie im Code angegeben haben.

Wie Sie auf dem Bild oben sehen können, C Ellbogen B10 , wo wir den angegebenen Wert gefunden haben, " Kante " ist farbig nach der Codeausführung.

VBA-Code-Erläuterung

 Dim iData As Range 

Definieren Sie die Variable.

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

Dieser Teil des Codes dient dazu, die Zeilen von 1 bis 15 in einer Schleife zu durchlaufen, wenn er das Wort " Kante "Dies wird so lange fortgesetzt, bis alle Daten in den Zeilen 1 bis 15 auf der Suche nach dem Wort durchsucht wurden.

Lesen Sie mehr: Verwendung von VLOOKUP-Tabellenarray basierend auf Zellwert in Excel

Ähnliche Lektüre

  • Existiert die Funktion TABLE in Excel?
  • Wie man in Excel eine Tabelle in eine Liste umwandelt (3 schnelle Wege)
  • Bereich in Excel in eine Tabelle konvertieren (5 einfache Methoden)
  • Formeln in einer Excel-Tabelle effektiv verwenden (mit 4 Beispielen)
  • Excel-Tabellenname: Alles, was Sie wissen müssen

7 VBA implementieren, um eine Schleife durch jede Zeile zu ziehen und jede ungerade Zeile in Excel einzufärben

Im vorigen Abschnitt haben wir gelernt, wie man eine Zelle mit einem bestimmten Wert einfärbt. In diesem Abschnitt werden wir lernen, wie man Schleife durch jede Zeile einer Tabelle und Färbung jeder ungeraden Zeile mit VBA Makro in Excel.

Die Schritte zur Durchführung des Prozesses werden im Folgenden beschrieben.

Schritte:

  • Wie bereits gezeigt, öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Jetzt, ausführen. das Makro und sehen Sie sich das folgende Bild an, um die Ausgabe zu sehen.

Die gesamte ungerade Zeilen sind farbig nach dem Durchlaufen aller Zeilen in der Tabelle des Arbeitsblatts.

VBA-Code-Erläuterung

 Dim iRow As Long 

Definieren Sie die Variable.

 With Bereich("B4").AktuelleRegion 

Definieren Sie den Bereich, mit dem wir arbeiten werden.

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

Dieser Teil des Codes bezieht sich auf die Iteration durch alle Zeilen, beginnend mit der nächsten Zeile der aktuellen Zeile, B4 Wenn der Modifikator, der sich aus der Division der Zeilennummern durch 2 ergibt, gleich der zurückgegebenen Zeilennummer ist, die in einem Integer-Typ gespeichert ist, dann färbt dieser Code alle Zeilen, die durch die Berechnung extrahiert wurden, mit dem im Code angegebenen Farbindex.

8 VBA implementieren, um eine Schleife durch die Zeilen zu ziehen und alle geraden Zeilen in Excel einzufärben

Im vorigen Abschnitt haben wir gelernt, wie man jede ungerade Zeile einer Tabelle einfärbt. In diesem Abschnitt werden wir lernen, wie man Schleife durch jede Zeile einer Tabelle und Färbung jeder geraden Zeile mit VBA-Makro in Excel.

Die einzelnen Schritte zur Durchführung des Prozesses werden im Folgenden erläutert.

Schritte:

  • Erstens: Öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Nächste, ausführen. und schauen Sie sich das folgende Bild an, um das Ergebnis zu sehen.

Die gesamte geradzahlige Zeilen sind farbig nach dem Durchlaufen aller Zeilen in der Tabelle des Arbeitsblatts.

VBA-Code-Erläuterung

 Dim iRow As Long 

Definieren Sie die Variable.

 With Bereich("B4").AktuelleRegion 

Definieren Sie den Bereich, mit dem wir arbeiten werden.

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

Dieser Teil des Codes beginnt mit der Iteration nach den drei Zeilen ab der aktuellen Zeile, B4 Er färbt sie zuerst, erhöht dann die Zeilenzahl um 2 und färbt sie weiter, bis er die letzte Zeile des Datensatzes erreicht.

9 Makro anwenden, um in Excel durch die Zeilen zu gehen, bis die Zelle leer ist

Wenn Sie möchten, dass Ihr Code so funktioniert, wie er soll Schleife durch alle Zeilen der Tabelle und Anhalten, wenn eine leere Zelle erreicht wird Sie können diese Aufgabe sowohl mit dem Befehl FOR-Schleife und die Do-Until-Schleife in Excel VBA .

9.1. mit FOR-Schleife

Schritte zu Schleife durch Zeilen in einer Tabelle bis zu einer leeren Zelle mit FOR Loop in VBA Excel sind unten angegeben.

Schritte:

  • Zunächst öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Und dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Dann, ausführen. das Makro und das Ergebnis ist im folgenden Bild zu sehen.

Nachdem das Makro ausgeführt wurde, wird es eine Schleife durch alle Zeilen zu ziehen in der Tabelle und sobald sie die Leere Zelle, Zelle B8 es die Iteration gestoppt .

VBA-Code-Erläuterung

 Dim x As Integer 

Definieren Sie die Variable.

 Application.ScreenUpdating = False 

Deaktivieren Sie das Ereignis zur Bildschirmaktualisierung.

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

Alle Zeilen speichern, beginnend mit Zelle B4 bis zum letzten.

 Bereich("B4").Auswählen 

Wählen Sie Zelle B4 .

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

Wenn er eine leere Zelle in einer Zeile findet, wählt er sie aus und fährt mit dem Scannen der Zeilen fort, bis er das Ende erreicht.

 Application.ScreenUpdating = True 

Schalten Sie das Ereignis zur Bildschirmaktualisierung ein.

9.2. mit Do-Until-Schleife

Schritte zu Schleife durch die Zeilen bis zu einer leeren Zelle mit Do-Until-Schleife in VBA sind unten aufgeführt.

Schritte:

  • Erstens: Öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Ihr Code ist nun einsatzbereit.

  • Später, ausführen. Das Ergebnis ist in der folgenden Grafik zu sehen.

Nachdem das Makro ausgeführt wurde, startete es Schleifenbildung durch alle Zeilen in der Tabelle und sobald sie die Leere Zelle, Zelle B8 es die Iteration gestoppt .

VBA-Code-Erläuterung

 Bereich("B4").Auswählen 

Wählen Sie die Zelle aus, von der aus wir arbeiten wollen.

 Do Until IsEmpty(ActiveCell) 

Startet eine Schleife und setzt sie fort, bis eine leere Zelle gefunden wird.

 ActiveCell.Offset(1, 0).Select Schleife 

Wenn in einer Zeile eine leere Zelle gefunden wird, wählen Sie diese aus und beenden die Iteration.

10 VBA-Makro zum Durchlaufen von Zeilen bis zu mehreren leeren Zellen in Excel

Im vorigen Abschnitt haben Sie gelernt, wie man die Schleife anhält, wenn eine leere Zelle gefunden wird. Aber was ist, wenn Sie die Iteration erst anhalten wollen, wenn mehrere leere Zellen statt nur einer gefunden werden?

Die Schritte zum Schleife durch die Zeilen, bis mehrere leere Zellen vorhanden sind finden sich in einer Tabelle mit VBA Excel sind unten dargestellt.

Schritte:

  • Erstens: Öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Ihr Code ist nun einsatzbereit.

  • Jetzt, ausführen. das Makro und sehen Sie sich die Ausgabe im folgenden gif an.

Nachdem das Makro ausgeführt wurde, wird es nicht bei der ersten leeren Zelle, Zelle B8, aufgehört hat Es hörte auf, als es fand zwei aufeinanderfolgende leere Zellen auf Zelle B16 .

VBA-Code-Erläuterung

 Bereich("B4").Auswählen 

Wählen Sie die Zelle aus, von der aus wir arbeiten wollen.

 Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) 

Startet eine Schleife und setzt sie fort, bis zwei aufeinanderfolgende leere Zellen gefunden werden.

 ActiveCell.Offset(2, 0).Select Schleife 

Wenn zwei aufeinanderfolgende leere Zellen gefunden werden, werden diese ausgewählt und die Iteration wird beendet.

11 VBA einbetten, um Zeilen durch Verkettung aller Spalten bis zum Leerzeichen in Excel zu durchlaufen

In diesem Abschnitt erfahren Sie, wie Sie Schleife durch alle Zeilen einer Tabelle und Verkettung aller Spalten, bis eine leere Zelle erscheint wird gefunden mit VBA Excel.

Wir lernen, wie man das macht mit VBA Makro in Excel.

Schritte:

  • Zunächst öffnen Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
  • Dann, kopieren. den folgenden Code und einfügen in das Codefenster ein.
 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 

Ihr Code ist nun einsatzbereit.

  • Später, ausführen. das Makro und sehen Sie sich das Ergebnis in der folgenden Grafik an.

Wie Sie aus dem obigen Bild ersehen können, gibt es ein Pop-up MsgBox und zeigt Ihnen die verketteter Wert aller Spalten, die sich in jeder Zeile befinden aus der Tabelle Ihres Excel-Arbeitsblatts. Aber es bei Erreichen der leeren Zelle angehalten .

VBA-Code-Erläuterung

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

Definieren Sie die Variablen.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Legen Sie den Blattnamen fest, mit dem wir arbeiten werden (" Verkettung vonAllColUntilBlank " ist der Blattname in der Arbeitsmappe).

 iValue = Range("B4").CurrentRegion 

Definieren Sie den Bereich, mit dem wir arbeiten werden.

 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 

Dieser Code beginnt die Schleife mit dem Array. Die Schleife wird so lange fortgesetzt, bis das größte Subscript des Arrays und die untere Grenze der ersten Dimension zurückgegeben werden. Dann beginnt die Iteration zur Extraktion der unteren Grenze der zweiten Dimension. Danach werden alle extrahierten Werte an die iResult durch Verkettung der Variablen und gibt das Ergebnis in die MsgBox ein, und zwar so lange, bis eine leere Zelle gefunden wird.

Schlussfolgerung

Abschließend möchte ich Ihnen in diesem Artikel 11 wirksame Methoden vorstellen, wie Sie Schleife durch Zeilen einer Tabelle in Excel mit der Option VBA-Makro Ich hoffe, dass dieser Artikel für Sie von Nutzen war. Sie können mir gerne Fragen zum Thema stellen.

Hugh West ist ein äußerst erfahrener Excel-Trainer und -Analyst mit über 10 Jahren Erfahrung in der Branche. Er verfügt über einen Bachelor-Abschluss in Rechnungswesen und Finanzen sowie einen Master-Abschluss in Betriebswirtschaft. Hugh hat eine Leidenschaft für das Unterrichten und hat einen einzigartigen Lehransatz entwickelt, der leicht zu befolgen und zu verstehen ist. Seine Expertenkenntnisse in Excel haben Tausenden von Studenten und Berufstätigen auf der ganzen Welt geholfen, ihre Fähigkeiten zu verbessern und in ihrer Karriere herausragende Leistungen zu erbringen. Über seinen Blog teilt Hugh sein Wissen mit der Welt und bietet kostenlose Excel-Tutorials und Online-Schulungen an, um Einzelpersonen und Unternehmen dabei zu helfen, ihr volles Potenzial auszuschöpfen.