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

Forumthread: Rows mit Variablen

Rows mit Variablen
17.03.2020 09:09:58
Korbi
Hallo zusammen,
ich sitze vor folgendem Problem. Ich schreibe an einem Makro, wo nicht immer die selbe Zeile verwendet werden soll.
Folgenden Code habe ich und da würde ich gerne C15 und G15 mit Variablen austauschen.
Rows(C15:G15).Select
Mein bisheriger Ansatz hat nicht funktioniert.
Dim a, b
a = Range("G5").Value
b = Range("H5").Value
Rows(a&":"&b).Select
Vielen Dank für die Hilfe
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Rows(a & ":" & b).Select funtioniert doch
17.03.2020 09:19:44
Matthias
Hallo
Welche ZahlenWerte haben denn a und b
Gruß Matthias
funktioniert doch sollte es heißen ... owT
17.03.2020 09:21:04
Matthias
AW: funktioniert doch sollte es heißen ... owT
17.03.2020 10:07:03
Korbi
Sie haben keine Zahlenwerte sondern entsprechen der Zeile im Bereich C16 bis N16 und dieser Bereich soll variabel sein.
Anzeige
AW: Rows mit Variablen
17.03.2020 09:20:12
Regina
Hi, so schiebst Du nur die Werte in die Variablen, besser so:
Dim a As String
Dim b As String
a = Range("A1").Address
b = Range("A10").Address
Range(a & ":" & b).Select
Anmerkung: Für die meisten Aktionen braucht man kein Select, weiß ja nicht, was Du vor hast.
Gruß Regina
Anzeige
AW: Rows mit Variablen
17.03.2020 09:22:35
Regina
... falsch verstanden:
Wenn es nur die Zeilen sein sollen, dann so:
Dim a As Long
Dim b As Long
a = Range("G5").Value
b = Range("H5").Value
Rows(a & ":" & b).Select
Gruß Regina
AW: Rows mit Variablen
17.03.2020 10:05:47
Korbi
Jede Zeile entspricht einem Monat, in dem automatisch etwas kopiert werden soll.
Ich möchte zentral an einem Punkt den Monat ändern und damit automatisch das Makro anpassen.
Anzeige
AW: Rows mit Variablen
17.03.2020 10:08:43
Regina
ok, dann würdest Du, wenn der erste Part (das Select) , dieses Select durch ein Copy ersetzen und dahinter angeben, wohin kopiert werden soll. Wenn schon der erste part nicht klappt, solltest Du mal eine Beispielmappe hochladen, in der man erkennen kann, was in den Zellen steht und was kopiert werden soll.
Gruß Regina
Anzeige
Range(Rows(a), Rows(b)).Select owT
17.03.2020 13:11:54
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Variablen für Zeilen in Excel VBA verwenden


Schritt-für-Schritt-Anleitung

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

  1. Definiere die Variablen: Stelle sicher, dass die Variablen für die Zeilen als Long deklariert sind.

    Dim a As Long
    Dim b As Long
  2. Weise Werte zu: Weisen die Werte aus den Zellen den Variablen zu.

    a = Range("G5").Value
    b = Range("H5").Value
  3. Verwende die .Rows-Methode: Setze die Variablen in der .Rows-Methode ein.

    Rows(a & ":" & b).Select
  4. Optional – Kopieren: Wenn du die Zeilen kopieren möchtest, ersetze .Select durch .Copy und füge das Ziel an, wohin die Daten kopiert werden sollen.

    Rows(a & ":" & b).Copy Destination:=Range("C1")

Häufige Fehler und Lösungen

  1. Fehler: "Typenkonflikt"

    • Lösung: Stelle sicher, dass die Zellen, die du ausliest, Zahlenwerte enthalten. Wenn nicht, konvertiere sie in Zahlen.
  2. Fehler: "Objektvariable nicht gesetzt"

    • Lösung: Vergewissere dich, dass du die richtige Arbeitsmappe oder das richtige Arbeitsblatt aktiviert hast.
  3. Fehler: Kein Bereich ausgewählt

    • Lösung: Überprüfe, ob die Variablen a und b tatsächlich gültige Zeilenwerte haben.

Alternative Methoden

  • Direktes Arbeiten mit Adressen: Du kannst die Adressen der Zellen direkt in die .Select-Methode einfügen, ohne Variablen zu verwenden.

    Range("C15:G15").Select
  • Verwendung von For-Schleifen: Eine Schleife kann nützlich sein, wenn du mehrere Zeilen iterativ verarbeiten möchtest.

    For i = a To b
       Rows(i).Select
       ' Weitere Aktionen hier
    Next i

Praktische Beispiele

  1. Monatliche Daten kopieren:

    Dim a As Long
    Dim b As Long
    a = Range("G5").Value
    b = Range("H5").Value
    Rows(a & ":" & b).Copy Destination:=Range("A1")
  2. Dynamische Zeilenwahl:

    Dim startRow As Long
    Dim endRow As Long
    startRow = 2 ' Startzeile
    endRow = startRow + 10 ' 10 Zeilen später
    Rows(startRow & ":" & endRow).Select

Tipps für Profis

  • Vermeide die Verwendung von .Select, wenn möglich. Direkte Referenzen sind schneller und effizienter.
  • Nutze With ... End With-Blöcke, um den Code lesbarer zu gestalten.
    With Rows(a & ":" & b)
       .Copy Destination:=Range("C1")
    End With
  • Teste deinen Code regelmäßig, um sicherzustellen, dass die Variablen die erwarteten Werte haben.

FAQ: Häufige Fragen

1. Frage
Wie kann ich eine Zeile um eine Variable erhöhen oder verringern?
Antwort: Du kannst einfach a + 1 oder b - 1 verwenden, um den Zeilenindex zu ändern.

2. Frage
Was passiert, wenn die Variablen a und b außerhalb des gültigen Bereichs liegen?
Antwort: In solchen Fällen gibt es einen Laufzeitfehler. Stelle sicher, dass die Variablen innerhalb der Grenzen der Arbeitsmappe liegen.

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