Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige

Forumthread: ActiveSheet-Rows-Select mit Variablen

ActiveSheet-Rows-Select mit Variablen
03.08.2004 22:03:38
Michael
Servus Forum-Teilnehmer,
folgendes Problem :
Wie lässt sich in diesem Befehl
ActiveSheet.Rows(2:5003").Select
die Zahl 2 durch eine Variable "AnfR"
und
die Zahl 5003 durch die Variable "EndR"
ersätzen ?
Es soll nur der Zeilen-Bereich mit Inhalt
geprüft werden,
hierzu suche ich noch eine einfache Funktion,
z.B. auf der Basis
EndR=Rows.Count ' (dieser Code funktioniert nicht!)
der automatisch die Zeilen mit Inhalt zählt.
Gefragt ist hier eine sehr einfache Lösung !
Vielen Dank im Voraus.
Gruss Michael
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet-Rows-Select mit Variablen
heinz
servus michael, so vielleicht?

Sub test()
Dim AnfR As Integer
Dim EndR As Integer
AnfR = 2
EndR = 5003
Rows(AnfR & ":" & EndR).Select
End Sub

heinz
AW: ActiveSheet-Rows-Select mit Variablen
03.08.2004 22:32:45
Björn
Hallo Michael,
vorausgesetzt du hast in Spalte 1 immer einen Inhalt, wenn in der Zeile überhaupt etwas steht, dann geht's mit diesem Code:
AnfR = 2
EndR = ActiveSheet.Cells(65536, 1).End(xlUp).Row 'Ggf. die "1" durch eine andere Spalte ersetzten!
ActiveSheet.Rows("" & AnfR & ":" & EndR & "").Select
Gruß
Björn
Anzeige
leicht verbesserte Version
03.08.2004 22:35:24
Björn
Hallo Michael,
da war noch was überflüssig (Siehe Lösung von Heinz). Besser ist:
AnfR = 2
EndR = ActiveSheet.Cells(65536, 1).End(xlUp).Row 'Ggf. die "1" durch eine andere Spalte ersetzten!
ActiveSheet.Rows(AnfR & ":" & EndR).Select
Gruß
Björn
AW: leicht verbesserte Version
04.08.2004 16:24:14
Michael
Servus Heinz,
servus Björn B.,
vielen Dank für Eure Empfehlungen,
sie funktionieren alle super,
hat mir sehr weiter geholfen.
Bezüglich dem Ermitteln der letzten
Zeilen-Nummer mit Inhalt,
hatte Nepumuk folgenden Vorschlag :
EndR=ActiveSheet.UsedRange.Rows.Count
funktioniert super.
Danke nochmals
Gruss Michael
Anzeige
Danke für die Rückmeldung - o. T.
05.08.2004 00:55:51
Björn
AW: ActiveSheet-Rows-Select mit Variablen
03.08.2004 22:34:42
Nepumuk
Hallo Michael,
so ermittelst du die letzte gefüllte Zelle in Spalte A:
EndR = Range("A65536").End(xlUp).Row
Gruß
Nepumuk
AW: ActiveSheet-Rows-Select mit Variablen
04.08.2004 14:28:52
Michael
Servus Nepumuk,
vielen Dank für Deinen Vorschlag.
Gibt es keine automatische Funktion, die die letzte
Zeile eines Tabellenblattes mit Inhalt ermittelt ?
Z.B. über "Rows.Count" oder "CountRows",
ohne dass ein Zeilen-Bereich angegeben werden muss;
das Ergebnis, der letzten Zeile, dann als Integer-Wert
der Variablen "EndR" übergeben wird.
Gruss Michael
Anzeige
AW: ActiveSheet-Rows-Select mit Variablen
04.08.2004 14:34:20
Nepumuk
Hallo Michael,
im Prizip ja. Über: ActiveSheet.UsedRange.Rows.Count
Gruß
Nepumuk
AW: ActiveSheet-Rows-Select mit Variablen
04.08.2004 14:54:30
Michael
Servus Nepumuk,
sehr interessant Dein Vorschlag.
Aber wie bekomme ich jetzt den Integer-Wert der
tatsächlich letzten Zeile in die Variable "EndR" ?
EndR=ActiveSheet.UsedRange.Rows.Count
funktioniert das so?
Ich bitte Dich um ein kurzes Zeilen-Beispiel.
Vielen Dank
Gruss Michael
Anzeige
AW: ActiveSheet-Rows-Select mit Variablen
04.08.2004 14:55:50
Nepumuk
Hallo Michael,
ja, richtig!!
Gruß
Nepumuk
AW: ActiveSheet-Rows-Select mit Variablen
04.08.2004 16:18:03
Michael
Servus Nepumuk,
vielen Dank.
Deine letzte Empfehlung
'letzte Zeilen-Nr. mit Inhalt in Variable
EndR=ActiveSheet.UsedRange.Rows.Count
funktioniert super.
Danke nochmals
Gruss Michael

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveSheet-Rows-Select mit Variablen


Schritt-für-Schritt-Anleitung

Um in Excel VBA Zeilen mit Variablen auszuwählen, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").
  3. Kopiere und füge den folgenden Code ein:
Sub ZeilenMitVariablenAuswählen()
    Dim AnfR As Integer
    Dim EndR As Integer

    ' Setze den Start- und Endwert
    AnfR = 2
    EndR = 5003

    ' Wähle die Zeilen aus
    ActiveSheet.Rows(AnfR & ":" & EndR).Select
End Sub
  1. Ändere die Werte von AnfR und EndR nach Bedarf.
  2. Führe das Makro aus, um die gewünschten Zeilen auszuwählen.

Häufige Fehler und Lösungen

  • Fehler: „Objektvariable oder With-Blockvariable nicht gesetzt“

    • Lösung: Stelle sicher, dass du das Makro im richtigen Arbeitsblatt ausführst. Überprüfe, ob ActiveSheet tatsächlich das Blatt ist, in dem du arbeiten möchtest.
  • Fehler: „Index außerhalb des gültigen Bereichs“

    • Lösung: Überprüfe die Werte der Variablen AnfR und EndR. Sie müssen im gültigen Bereich der Zeilen liegen (z. B. 1 bis ActiveSheet.Rows.Count).

Alternative Methoden

Falls du die letzte Zeile mit Inhalt automatisch ermitteln möchtest, kannst du folgenden Code verwenden:

Sub LetzteZeileErmitteln()
    Dim AnfR As Integer
    Dim EndR As Integer

    AnfR = 2
    EndR = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row ' Spalte 1 kann angepasst werden

    ActiveSheet.Rows(AnfR & ":" & EndR).Select
End Sub

Das Beispiel verwendet ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row, um die letzte gefüllte Zeile in Spalte A zu finden.


Praktische Beispiele

Hier sind einige praktische Beispiele, die du in deinem VBA-Projekt verwenden kannst:

  1. Wählen der letzten Zeile basierend auf einer anderen Spalte:

    EndR = ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row ' Hier wird Spalte 2 verwendet
  2. Automatisches Zählen der Zeilen mit Inhalt:

    EndR = ActiveSheet.UsedRange.Rows.Count

Tipps für Profis

  • Verwende With ActiveSheet-Blöcke, um den Code effizienter und lesbarer zu gestalten.
With ActiveSheet
    .Rows(AnfR & ":" & EndR).Select
End With
  • Um die Auswahl von Zeilen zu vermeiden, kannst du auch direkt mit der Range-Objekt arbeiten:
Dim rng As Range
Set rng = ActiveSheet.Rows(AnfR & ":" & EndR)

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile mit Inhalt in einer bestimmten Spalte ermitteln? Du kannst die folgende Zeile verwenden:

EndR = ActiveSheet.Cells(ActiveSheet.Rows.Count, <Spaltennummer>).End(xlUp).Row

Ersetze <Spaltennummer> durch die Nummer der Spalte, die du verwenden möchtest.

2. Gibt es eine Möglichkeit, nur die sichtbaren Zeilen auszuwählen? Ja, du kannst die SpecialCells-Methode verwenden, um nur sichtbare Zellen auszuwählen:

ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Select

Mit diesen Anleitungen und Beispielen solltest du in der Lage sein, effektiv mit ActiveSheet.Rows in VBA zu arbeiten und Zeilen mit Variablen auszuwählen.