Ziel:
Eine Variable sollte die Anzahl der Zeilen eines bestimmten Blattes enthalten.Anzahl der Zeilen im Blatt
Problem:
Welche Syntax Code in Excel VBA muss ich Menge der Zeilen aus Blatt zählen?
Ziel:
Eine Variable sollte die Anzahl der Zeilen eines bestimmten Blattes enthalten.Anzahl der Zeilen im Blatt
Problem:
Welche Syntax Code in Excel VBA muss ich Menge der Zeilen aus Blatt zählen?
Mit der Usedrange Methode ist einer meiner Favoriten hat, aber es muss mit behandelt werden Pflege. Es hat ein paar Mängel/Fehler. Es ist ein bekanntes Problem, dass Excel den verwendeten Bereich nicht sehr gut verfolgt. Jede Bezugnahme auf den verwendeten Bereich über VBA setzt den Wert auf den aktuell verwendeten Bereich zurück. Also versuchen Ausführen dieses Sub-Prozedur, wenn Sie den verwendeten Bereich erhalten:
Dim lRowCount as Long
Application.ActiveSheet.UsedRange
lRowCount = Worksheets("MySheet").UsedRange.Rows.Count
aber bewusst sein, dies wird Ihnen die verwendet Bereich zählen, so dass, wenn Sie an der Spitze der Arbeitsmappe leeren Zeilen (die oft Leute machen Platz für Dinge wie Filterkriterien etc), dann werden sie nicht gezählt. Die usedrange-Methode kann auch durch Formatierung beeinflusst werden.
Wenn Sie die letzte Zeile verwendet wird, das ist, was ich glaube, Sie wollen, dann können Sie die Methode find verwenden, die zuverlässiger ist:
Dim rLastCell As Range
Dim lLastRow As Long
Set rLastCell = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
If Not rLastCell Is Nothing Then lLastRow = rLastCell.Row
Wenn Sie wissen, dass Sie atleast eine Zelle mit Daten in ihm, dann können Sie die oben vereinfachen:
Dim lLastRow As Long
lLastRow = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
Sie können auch versuchen:
i = Sheets("SheetName").UsedRange.Rows.Count
Dies ist jedoch ein wenig Buggy erhalten, wenn Sie löschen und Löschen Reihen starten.
Ein besserer Weg, dies zu tun ist:
i = Cells(Sheets("SheetName").Rows.Count, 1).End(xlup).Row
Dies setzt voraus, dass jede Zeile Daten in Spalte 1
Wenn Sie insgesamt Zeilen bedeuten, 'Worksheet.Rows.Count' es tun wird. Wenn du etwas anderes meinst, lass es uns wissen. –