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

Forumthread: Range-Variable: mehrere Zellen wählen

Range-Variable: mehrere Zellen wählen
24.09.2013 13:50:04
Manuel
Hallo Zusammen
Ich versuch gerade meinen Code durch das Definieren von Range-Variablen übersichtlicher zu gestalten. Nun möchte ich aus meiner Range-Variable eine "Teil-Range" auswählen und dessen Werte auf einen andere "Teil-Range" übertragen.
Dies würde ungefähr so aussehen
set myRange = Range(Cells(1,1),Cells(4,10))
Davon möchte ich die Spalte 4 auf Spalte 2 übertragen, aber nur die Werte von Zeile 3 bis 9. Ich stelle mir das ungefähr so vor:
myRange(3:9,2).Value = myRange(3:9,4).Value
Wichtig! Ich kann nicht eine komplette Spalte übertragen! Ausserdem möchte ich einen for-loop umgehen...
Ich hoffe ihr sagt mir jetzt nicht, dass so etwas nicht möglich ist...
Danke schonmal für die Hilfe
Gruss Manuel

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range-Variable: mehrere Zellen wählen
24.09.2013 14:00:45
Matthias
Hallo
Davon möchte ich die Spalte 4 auf Spalte 2 übertragen, aber nur die Werte von Zeile 3 bis 9.
Du hast doch aber nur 4 Zeilen!
Kann es sein das Du Spalten und Zeilen verwechselst?
Gruß Matthias

AW: Range-Variable: mehrere Zellen wählen
24.09.2013 14:33:03
Manuel
Hallo Matthias
Du hast recht, ich habe Zeilen und Spalten vertauscht. Passiert mir öfters. Ich hab das als fiktives Beispiel erstellt, weil mein code mit den ganzen Variablen nur schwer zu entziffern ist. Korrekt ist:
Set myRange = Range(Cells(1, 1), Cells(4, 10))
Merci und liebe Grüsse
Manuel

Anzeige
AW: Range-Variable: mehrere Zellen wählen
24.09.2013 14:01:03
Rudi
Hallo,
eine Möglichkeit:
myRange.Columns(2).Rows("3:9").Value = myRange.Columns(4).Rows("3:9").Value
Gruß
Rudi

AW: Range-Variable: mehrere Zellen wählen
24.09.2013 14:29:18
Manuel
Hallo Rudi
Du hast recht. Das ist die Lösung.
Vielen Dank und Grüsse
Manuel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Range-Variable: mehrere Zellen in VBA auswählen


Schritt-für-Schritt-Anleitung

Um eine "Teil-Range" aus einer Range-Variable auszuwählen und deren Werte auf eine andere Teil-Range zu übertragen, kannst du folgende Schritte ausführen:

  1. Definiere deine Range-Variable: Zuerst musst du eine Range-Variable definieren, die die Zellen umfasst, mit denen du arbeiten möchtest. Beispiel:

    Set myRange = Range(Cells(1, 1), Cells(4, 10))
  2. Übertrage die Werte: Um die Werte von einer bestimmten Spalte in eine andere zu übertragen, ohne einen For-Loop zu verwenden, kannst du den folgenden Code nutzen:

    myRange.Columns(2).Rows("3:9").Value = myRange.Columns(4).Rows("3:9").Value

Dieser Code überträgt die Werte von der 4. Spalte in die 2. Spalte für die Zeilen 3 bis 9 innerhalb deiner definierten Range-Variable.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass Zeilen und Spalten verwechselt werden. Achte darauf, dass du die Syntax korrekt verwendest:

  • Fehler: myRange(3:9,2).Value = myRange(3:9,4).Value
  • Lösung: Nutze die .Columns und .Rows Eigenschaften, wie im obigen Beispiel gezeigt.

Wenn du versuchst, eine komplette Spalte zu übertragen, obwohl du nur einen Teil der Range benötigst, kann dies ebenfalls zu Fehlern führen. Halte dich an die Teilbereiche, wie im Beispiel beschrieben.


Alternative Methoden

Eine Alternative zur Verwendung von Range-Variablen ist die Nutzung der Union-Methode, um mehrere Bereiche zu kombinieren:

Dim combinedRange As Range
Set combinedRange = Union(myRange.Columns(2).Rows("3:9"), myRange.Columns(4).Rows("3:9"))
combinedRange.Value = myRange.Columns(4).Rows("3:9").Value

Diese Methode kann nützlich sein, wenn du mit excel vba range mehrere bereiche arbeiten möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du mit vba range mehrere zellen arbeiten kannst:

  1. Werte von einer Spalte in eine andere kopieren:

    Set myRange = Range(Cells(1, 1), Cells(5, 5))
    myRange.Columns(1).Rows("2:4").Value = myRange.Columns(3).Rows("2:4").Value
  2. Daten aus mehreren Bereichen extrahieren:

    Dim myRange1 As Range
    Dim myRange2 As Range
    Set myRange1 = Range("A1:A10")
    Set myRange2 = Range("C1:C10")
    myRange1.Value = myRange2.Value

Tipps für Profis

  • Nutze die With-Anweisung, um den Code übersichtlicher zu gestalten:

    With myRange
        .Columns(2).Rows("3:9").Value = .Columns(4).Rows("3:9").Value
    End With
  • Halte deine Range-Variablen so spezifisch wie möglich, um die Lesbarkeit und Wartbarkeit deines Codes zu verbessern.


FAQ: Häufige Fragen

1. Ist es möglich, mehrere nicht zusammenhängende Bereiche zu kopieren?
Ja, du kannst die Union-Methode verwenden, um mehrere nicht zusammenhängende Bereiche in einer Range-Variable zu kombinieren.

2. Was mache ich, wenn ich mehr als zwei Spalten übertragen möchte?
Du kannst die gleiche Logik für jede Spalte anwenden, indem du die entsprechenden .Columns und .Rows Angaben anpasst. Achte darauf, dass die Zielbereiche die gleiche Größe wie die Quellbereiche haben.

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