Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Rows.Count

Rows.Count
27.02.2019 15:30:14
Flo
Hallo zusammen,
ich lasse im Rahmen eines Programms eine For-Schleife über ein Tabellenblatt laufen.
For i = 2 To Tabelle.Rows.Count
...
Next i
Da sich die Anzahl der Zeilen stets ändern kann, bin ich auf die Variante "Tabelle.Rows.Count" angewiesen. Allerdings steht unter der eigentlichen Tabelle noch etwas in Form einer Legende. Natürlich zählt er die Zeilen bis zum Ende der Legende - ich hätte es allerdings gerne nur bis zum Ende der Tabelle.
Die Legende ist in Spalte A geschrieben, aber ich beziehe mich auf Spalte E, d.h. ich könnte die benutzten Zeilen in Spalte E zählen lassen. Habe da auch schon ein bisschen rumprobiert aber es läuft nicht. Bei Cells(Rows.Count, 5) bspw. führt er die Aktion nicht mehr aus.
Vielleicht kann mir jemand weiterhelfen.
Gruß Flo
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rows.Count
27.02.2019 15:37:30
Daniel
Hallo Flo,
wenn du Tabelle.Rows.Count nimmst, zählt er immer bis zur letzten Zeile des ganzen Blattes (1048576). Für deine Zwecke müsste es heißen:
Cells(Rows.Count, 5).End(xlUp).Row
Gruß
Daniel
AW: Rows.Count
27.02.2019 15:46:56
Flo
Es kann manchmal so einfach sein.
Vielen Dank Daniel!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Optimale Nutzung von Rows.Count in VBA


Schritt-für-Schritt-Anleitung

Um die Anzahl der benutzten Zeilen in einem bestimmten Datenbereich mit VBA zu zählen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").

  3. Schreibe den folgenden Code in das Modul:

    Sub CountUsedRows()
       Dim lastRow As Long
       lastRow = Cells(Rows.Count, 5).End(xlUp).Row
       MsgBox "Die letzte benutzte Zeile in Spalte E ist: " & lastRow
    End Sub
  4. Schließe den Editor und führe das Makro aus (über F5 oder im Excel-Menü "Entwicklertools" > "Makros").

Mit Cells(Rows.Count, 5).End(xlUp).Row wird die letzte benutzte Zeile in Spalte E korrekt ermittelt, ohne die Legende darunter zu zählen.


Häufige Fehler und Lösungen

  • Fehler: Run-time error '1004': Unable to get the Rows property of the Worksheet class

    • Lösung: Stelle sicher, dass das Blatt korrekt referenziert wird. Verwende Sheets("DeinBlattName").Cells(Rows.Count, 5).End(xlUp).Row, um auf das richtige Blatt zuzugreifen.
  • Fehler: Er gibt die falsche Zeilennummer zurück.

    • Lösung: Überprüfe, ob in der verwendeten Spalte tatsächlich Daten vorhanden sind. Wenn nicht, kann es sein, dass die Rückgabe 1 ist.

Alternative Methoden

Wenn du die Anzahl der Zeilen in einem anderen Kontext verwenden möchtest, gibt es verschiedene Ansätze:

  • Du kannst auch die UsedRange-Eigenschaft verwenden:

    Dim rowCount As Long
    rowCount = ActiveSheet.UsedRange.Rows.Count
  • Eine weitere Möglichkeit besteht darin, die CountA-Funktion zu nutzen, um die Anzahl der nicht leeren Zeilen zu zählen:

    Dim countNonEmpty As Long
    countNonEmpty = Application.WorksheetFunction.CountA(Range("E:E"))

Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die Rows.Count-Funktion in verschiedenen Szenarien zu verwenden:

  1. Zählen der Anzahl der Datensätze in einer Tabelle:

    Dim totalRecords As Long
    totalRecords = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox "Anzahl der Datensätze: " & totalRecords
  2. Schleife über alle benutzten Zeilen einer Spalte:

    Dim i As Long
    For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row
       ' Deine Logik hier
    Next i

Tipps für Profis

  • Vermeide die Verwendung von Rows.Count ohne die spezifische Spalte zu definieren. Dies kann zu unerwarteten Ergebnissen führen, da es die gesamte Zeilenanzahl des Arbeitsblattes zurückgibt.
  • Nutze die Möglichkeit, die End-Methode zu kombinieren, um schnell zur letzten benutzten Zeile zu gelangen.
  • Experimentiere mit verschiedenen Spalten, um die rows.count-Funktion effizient für deine Datenanalyse zu nutzen.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Zeilen in einer bestimmten Spalte zählen, ohne leere Zellen zu berücksichtigen?
Verwende Application.WorksheetFunction.CountA, um die Anzahl der nicht leeren Zellen in der Spalte zu ermitteln.

2. Kann ich die rows.count-Eigenschaft auch in einer Schleife verwenden?
Ja, du kannst die rows.count-Eigenschaft in einer Schleife verwenden, um über alle benutzten Zeilen einer bestimmten Spalte zu iterieren.

3. Was passiert, wenn ich die rows.count-Eigenschaft auf ein leeres Blatt anwende?
In diesem Fall erhältst du die Zeilenanzahl des gesamten Blattes (z.B. 1048576 in Excel), was nicht hilfreich ist. Daher ist es wichtig, die End-Methode zu verwenden, um die tatsächlich benutzten Zeilen zu ermitteln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige