Sorry, für die späte Antwort, war 'n ereignissreicher Tag.
Wenn die Spalte A durchweg Inhalt besitzt, kann man daran die Anzahl der Zeilen ermitteln.
Option Explicit
Sub Example()
Dim rngData As Excel.Range
Dim lngFirstDataRow As Long
lngFirstDataRow = 4
'Datenbereich anhand Spalte (A) ermitteln
With Worksheets("Tabelle1") '<- anpassen
Set rngData = .Range(.Cells(lngFirstDataRow, "A"), .Cells(.Rows.Count, "A").End(xlUp))
If rngData.Row < lngFirstDataRow Then Set rngData = Nothing
End With
'kein Datenbereich -> nix gefunden -> Ende
If rngData Is Nothing Then
Call MsgBox("Keine Zeilen mit Daten vorhanden.", vbExclamation)
Exit Sub
End If
'entspr. Tabellenblatt aktivieren und Bereich markieren
Call Application.Goto(rngData)
Call MsgBox("Der Datenbereich - in Spalte A - wurde markiert.", vbInformation)
End Sub
Hier wird in Spalte A mittels End(xlUp), von unten nach oben, in die erste Zelle mit Inhalt gesprungen; das ist dann automatisch auch die letzte Zelle in unserem Bereich.
Einen Bereich kann man nach folgenden Schema referenzieren (folgend mal allgemein RangeObject genannt):
Set RangeObject = Range( RangeObject01 , RangeObject02 )
Im Code-Schnipsel oben ist das die Variable rngData. Range() als auch Cells() liefern nämlich solch ein RangeObject.
Mittels der Variable rngData, die nun stellvertretend für den Datenbereich steht, kann man dann auf die darin liegenden Daten zugreifen.
Die Anzahl der Zeilen würde man z.B. so erhalten:
Call MsgBox("Anzahl Zeilen: " & rngData.Rows.Count)
Grüße
|