Alle Zeilen einer Tabelle in VBA dynamisch auswählen?

3 Antworten

Von Experte Suboptimierer bestätigt
Range("A1").CurrentRegion.Select

Edit:

Zuende lesen hilft, wenn Currentregion die restlichen Spalten wegen Leerzellen nicht erfasst könntest du auch einen kleinen Umweg machen:

Range(Cells(1,1),Cells(Range(A1).currentregion.rows.count,21)).select
Woher ich das weiß:Berufserfahrung – Administrator mit über 12 Jahren Berufserfahrung
3rr0r404 
Fragesteller
 16.07.2021, 11:38

Range("A1").CurrentRegion.Select hat tatsächlich schon mein Problem gelöst. Vielen Dank!

0
Krabat693  16.07.2021, 11:41
@3rr0r404

Mit .currentregion werden alle zusammenhängenden Zellen angesprochen. Der Umweg wäre erforderlich wenn eine leere Spalte im gewünschten Bereich liegt.

Der Umweg enthält ein .currentregion.rows.count welches die Anzahl der Zeilen des zusammenhängenden Bereiches ausgibt und über Cells(Zeile,Spalte) kannst du eine Zelle über numerische Werte ansprechen. Das ist auch praktisch wenn du mit einer Schleife zeilenweise die Tabelle durchgehen möchtest.

0
Suboptimierer  16.07.2021, 15:14

UsedRange könnte man noch einwerfen.

0

Range(Cells(zeileAnfang, spalteAnfang), Cells(zeileEnde, spalteEnde)).Select

Das sollte funktionieren. Für die Variablen zeile und spalte sind Zahlen einzusetzen.

mit "Cells" kannst du die ganze Tabelle selektieren.

Cells.clearcontents würde z.B. in allen Zellen alle Werte löschen