Das hängt stark davon ab wie dein Tabellenblatt aufgebaut ist.
Intelligente Tabelle (eng: Smart Table):
ListObject "Tabelle1" ist der Name des Smart Tables; hat absolut rein gar nichts mit dem Blattnamen "Tabelle1" zu tun.
(siehe Reiter: "Tabellenentwurf" im Menüband)
Dim objSmartTable As Excel.ListObject
Dim rngColumn As Excel.Range
Set objSmartTable = Worksheets("Tabelle1").ListObjects("Tabelle1")
'mit Kopfzeile
Set rngColumn = objSmartTable.ListColumns(5).Range
' 'nur der Datenbreich der Spalte
' Set rngColumn = objSmartTable.ListColumns(5).DataBodyRange
'...
normale Range:
Dim rngColumn As Excel.Range
With Worksheets("Tabelle1")
'E2:E? -> Zeilenindex '?' wird ermitteln
' Entspricht dem Verhalten von [STRG] + [Pfeil_hoch], wenn
' die unterste Zelle in der Spalte ausgewählt ist.
Set rngColumn = .Range(.Cells(2, 5), .Cells(.Rows.Count, 5).End(xlUp))
'wir gehen hier davon aus das in Zeile 1 die Spaltenbeschriftungen stehen
'falls wir in der Zeile landen, dann gibt es zur Zeit keine Daten
If rngColumn.Row < 2 Then Set rngColumn = Nothing
End With
'...
Anstatt der 5 kannst du auch "E" schreiben.
An die Anzahl der Zeilen gelangst du dann über Range.Rows.
rngColumn.Rows.Count
|