habe ein Problem. Möchte aus aktiver Zelle die Zeilennummer ermitteln. Für eine Variable.
Bsp.:
i=activecell.row
cell(i,9).select
Leider geht das so nicht.
Wer kann helfen?
Gruß Andreas
Um in Excel VBA die Zeilennummer der aktiven Zelle zu ermitteln, musst du die ActiveCell.Row
-Eigenschaft verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne den VBA-Editor (drücke ALT + F11
).
Füge ein neues Modul hinzu (Einfügen > Modul
).
Schreibe folgenden Code:
Sub ZeileErmitteln()
Dim i As Long
i = ActiveCell.Row
Cells(i, 9).Select ' Wählt die Zelle in Spalte 9 (I) der aktiven Zeile aus
End Sub
Schließe den Editor und führe das Makro aus, während du eine Zelle in Excel aktiv hast.
Problem: "Variable nicht definiert"
Dim
, um i
als Long
zu definieren.Problem: Der Befehl Cells(i, 9).Select
funktioniert nicht.
Cells
verwendest. Der richtige Befehl ist Cells(i, 9).Select
, nicht Cell(i, 9).Select
.Problem: Der Code läuft nicht wie erwartet, wenn du einen Bereich mit Range(Cells(i, "E"), Cells(i, "CA")).Select
auswählst.
Es gibt mehrere Möglichkeiten, die aktive Zeilennummer in Excel VBA zu ermitteln:
Verwendung von Application.ActiveCell.Row
:
Dim i As Long
i = Application.ActiveCell.Row
Direkte Referenzierung durch ActiveRow
:
Dim i As Long
i = ActiveCell.Row ' oder ActiveRow
Verwendung von Cell("row")
:
Dim i As Long
i = Cell("row", ActiveCell)
Hier sind einige praktische Szenarien, in denen du die aktive Zeile in VBA nutzen kannst:
Auswahl einer bestimmten Spalte in der aktiven Zeile:
Sub AuswahlSpalte()
Dim i As Long
i = ActiveCell.Row
Cells(i, 5).Select ' Wählt die Zelle in Spalte 5 (E) der aktiven Zeile aus
End Sub
Überprüfung, ob die aktive Zelle in einem bestimmten Bereich liegt:
Sub Überprüfung()
If Not Intersect(ActiveCell, Range("B7:B2000")) Is Nothing Then
MsgBox "Falsche Zelle ausgewählt"
Exit Sub
End If
End Sub
ActiveCell
-Eigenschaft auch in Kombination mit anderen Excel-Objekten verwenden, um komplexere Aufgaben zu automatisieren.ActiveCell.Offset
für die Navigation relativ zur aktiven Zelle. Zum Beispiel: ActiveCell.Offset(1, 0).Select
wählt die Zelle direkt unter der aktiven Zelle aus.Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Ausführung deines Makros zu deaktivieren, was die Ausführung beschleunigt.1. Wie kann ich die Zeilennummer der aktiven Zelle in einer Variablen speichern?
Du kannst die Zeilennummer wie folgt speichern: Dim i As Long: i = ActiveCell.Row
.
2. Was passiert, wenn keine Zelle aktiv ist?
Wenn keine Zelle aktiv ist, wird ein Fehler angezeigt. Stelle sicher, dass immer eine Zelle ausgewählt ist, bevor du den Code ausführst.
3. Kann ich die aktive Zelle direkt ansprechen?
Ja, du kannst direkt auf die ActiveCell
zugreifen, um Werte zu lesen oder zu ändern, z.B. ActiveCell.Value = "Neuer Wert"
.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen