AW: Von Zeile bis Ende durchzählen...
07.06.2005 13:07:25
bst
Nochmals Hallo,
Zum LetzteZeile=Worksheets("Tabelle1").Cells(65536,1).End(xlup).Row
IMHO nein.
Es funktioniert nicht, wenn:
a) die letzte Zelle in Spalte A (A65536) belegt ist
b) wenn kein Wert in Spalte A belegt ist, dann gibt es eigentlich ja keine
letzte beschriebene Zelle in Spalte A, oder ;-)
Zum UsedRange. Wenn der nicht die letzte beschriebene Zelle finden sollte, dann
steht dahinter irgendwo etwas drin. Leerzeichen, Formatierungen, Formeln, etc. pp.
Du solltest diese Zeilen/Spalten löschen. Sie verbrauchen nur unnötig Speicherplatz.
Und, falls Deine Daten nicht in der 1. Zeile anfangen sollten brauchst Du sowas:
Dim lastRow As Long
lastRow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1
FWIW, ich benutze zumeist sowas. Reicht mir aus, auch wenn es nicht b) berücksichtigt.
Gruß, Bernd
--
Option Explicit
Function GetLastRow(Optional spalte As Integer = 1) As Long
GetLastRow = Rows.Count
If Cells(GetLastRow, spalte).Value = "" Then GetLastRow = Cells(GetLastRow, spalte).End(xlUp).Row
End Function
Function GetLastRowWS(ws As Worksheet, Optional spalte As Integer = 1) As Long
With ws
GetLastRowWS = ws.Rows.Count
If ws.Cells(GetLastRowWS, spalte).Value = "" Then GetLastRowWS = ws.Cells(GetLastRowWS, spalte).End(xlUp).Row
End With
End Function