Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Cells(Rows.Count, "A").End(xlUp).Row für Spalten

Cells(Rows.Count, "A").End(xlUp).Row für Spalten
Moritz
Hallo,
es gibt folgenden Code:
Cells(Rows.Count, "A").End(xlUp).Row
Den man z.B. in einer For-Schleife verwenden kann, dass die Forschleife bis zum Ende des Dokuments läuft (Zeilen).
Wie muss ich den Code umschreiben, dass er nicht die Zeilen von unten nach oben zählt, sondern die Spalten von links nach rechts?
Ich habe es schon mit
Cells(1, Columns.Count).End(xlUp).Column
porbiert, aber das hat nicht wirklich funktioniert.
Viele Grüße
Moritz
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
.End(xlToLeft) owT
11.09.2009 13:12:45
Rudi
AW: .End(xlToLeft) owT
11.09.2009 13:40:44
Moritz
Danke für die Hilfe!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Cells(Rows.Count, "A").End(xlUp).Row für Spalten


Schritt-für-Schritt-Anleitung

Um in VBA die letzte nicht leere Spalte von links nach rechts zu ermitteln, kannst Du den folgenden Code verwenden:

Dim lastColumn As Long
lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column

Dieser Code sucht in der ersten Zeile nach der letzten gefüllten Zelle und gibt die Spaltennummer zurück. Achte darauf, dass Du anstelle von xlUp nun xlToLeft verwendest.

Wenn Du eine Schleife erstellen möchtest, die von der letzten zur ersten Spalte läuft, kannst Du das wie folgt umsetzen:

For col = lastColumn To 1 Step -1
    ' Deine Logik hier
Next col

Häufige Fehler und Lösungen

Fehler: Der Code Cells(1, Columns.Count).End(xlUp).Column gibt nicht die gewünschte Spalte zurück.

Lösung: Stelle sicher, dass Du End(xlToLeft) verwendest, um die letzte gefüllte Spalte zu ermitteln. Der korrekte Code lautet:

Cells(1, Columns.Count).End(xlToLeft).Column

Alternative Methoden

Eine alternative Methode zur Ermittlung der letzten Spalte ist die Verwendung der UsedRange-Eigenschaft:

Dim lastColumn As Long
lastColumn = ActiveSheet.UsedRange.Columns.Count

Diese Methode gibt die Anzahl der verwendeten Spalten im gesamten Arbeitsblatt zurück, kann jedoch von leeren oder ausgeblendeten Spalten beeinflusst werden.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das den Code in einer realen Anwendung zeigt:

Sub letzteSpalteErmitteln()
    Dim lastColumn As Long
    lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
    MsgBox "Die letzte gefüllte Spalte ist: " & lastColumn
End Sub

Diese Subroutine zeigt eine Meldung mit der Nummer der letzten gefüllten Spalte an.


Tipps für Profis

  • Verwende .Cells(rows.Count, 1).End(xlUp).Row, um die letzte gefüllte Zeile zu ermitteln, wenn Du mit Zeilen arbeiten möchtest.
  • Denke daran, dass End(xlToLeft) auch bei leeren Spalten im Arbeitsblatt Probleme verursachen kann. Überprüfe Deine Daten, bevor Du den Code ausführst.
  • Nutze den Debugger in VBA, um den Wert von lastColumn während der Ausführung zu überprüfen und sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich die letzte nicht leere Zeile ermitteln?
Verwende den Befehl Cells(Rows.Count, 1).End(xlUp).Row, um die letzte gefüllte Zeile in der ersten Spalte zu finden.

2. Kann ich den Code auf mehrere Spalten gleichzeitig anwenden?
Ja, Du kannst eine Schleife verwenden, die über mehrere Spalten iteriert, um die letzte gefüllte Zelle in jeder Spalte zu bestimmen.

3. Was ist der Unterschied zwischen xlUp und xlToLeft?
xlUp sucht von unten nach oben in den Zeilen, während xlToLeft von rechts nach links in den Spalten sucht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige