Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Einer Range eine Variable zuweisen

Forumthread: Einer Range eine Variable zuweisen

Einer Range eine Variable zuweisen
23.02.2004 14:29:09
Christoph
Hallo Leute,
habe folgende kurze Frage, gibt es(in VBA) einen Cells Befehl mit dem man eine ganze Range einer Variable/oder einem Array zuweisen kann.
Etwas in der art wie: x = Range("A1":"A20")
Besten Dank
Christoph
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einer Range eine Variable zuweisen
23.02.2004 14:34:35
AndReas
Hallö Christoph
dim x As Range
x= Worksheets(1).Range("A1:A20")
sollte funtionieren
Grüsse AndReas
AW: Einer Range eine Variable zuweisen
23.02.2004 14:47:07
Chrsitoph
habe folgendes ausprobiert,kriege aber eine Fehlermeldung.

Sub chris()
Dim x As Range
x = Worksheets("master").Range("D4:O4")
Worksheets("Test").Range ("D20:O20") = x
End Sub

Anzeige
AW: Einer Range eine Variable zuweisen
23.02.2004 15:00:13
Alex K.
Hallo Christoph,
da Range ein Objekt ist, musst du mit Set arbeiten:

Sub chris()
Dim x As Range
set x = Worksheets("master").Range("D4:O4")
Worksheets("Test").Range ("D20:O20") = x
End Sub

AW: Einer Range eine Variable zuweisen
23.02.2004 15:14:19
Christoph
Habe es genau so gemacht, aber es funz. nicht.
leider konnte ich das was unter ("master").Range("D4:O4") nicht unter ("Test").Range ("D20:O20") wiederfinden.
Anzeige
AW: Einer Range eine Variable zuweisen
23.02.2004 15:18:34
Karl-Otto Reimann
Hallo Christoph

Sub Kopieren()
Dim rngSource As Range, rngTarget As Range
Set rngSource = Workbooks("Test1.xls").Worksheets(1).Range("A1:F14")
Set rngTarget = Workbooks("Test2.xls").Worksheets(2).Range("C16")
rngSource.Copy rngTarget
End Sub

Gruß
Karl-Otto
Anzeige
Danke ??
23.02.2004 16:49:33
Christoph
Hi Danke hat funz.
aber kannst du mir noch erklären warum folg. nicht funz.
...
...
produkt= "Tabelle1"
Set rngSource = Workbooks("Planning_Tool_45,900_final.xls").Worksheets(""& produkt &").Range("D5:O5")
...
...
AW: Danke ??
23.02.2004 16:54:38
Andreas Walter
produkt= "Tabelle1"
Set rngSource = Workbooks("Planning_Tool_45,900_final.xls").Worksheets(produkt).Range("D5:O5")
Das muss gehen.
Erklärung
Worksheets(produkt)
bedeutet nimm die variable "produkt" und schreib es hier rein.
Wenn produkt "Tabelle1" beinhaltet, dann ist es
Worksheets("Tabelle1")
perfekt.
Aber wenn produkt eine Zahl wäre
produkt = 4711
und Du sagst
Worksheets(produkt)
dann wurde Excel auf der Suche nach Worksheets(4711), sprich nach dem 4.711'ten Blatt gehen (und wahrscheinlich nicht finden)
Nur in diesem Fall braucht man die Konstrkution
Worksheets("" & produkt)
Dann zwingst Du Excel eine Zeichenkette zu bilden.
Dann wird Worksheets("4711")
sprich Worksheet mit Namen "4711" gesucht.
Anzeige
Fehler: Index ausserhalb des gültigen Bereiches
23.02.2004 17:15:59
Christoph
Hi. Danke habe verstanden und auch mein Code umgeschrieben aber er bringt folgende fehlermeldung:
"Index ausserhalb des gültigen Bereiches".
Er macht aber trotzdem was er machen sollte.
1)Ist es von Bedeutung, das in dem zu kopierenden Bereich formeln sind.
2)Kan man statt der Formeln einfacha auch die Werte kopieren?
Anzeige
AW: Fehler: Index ausserhalb des gültigen Bereiches
25.02.2004 08:55:35
Andreas Walter
Du schreibst
> Hi. Danke habe verstanden und auch mein Code umgeschrieben aber er bringt folgende fehlermeldung:
> "Index ausserhalb des gültigen Bereiches".
Mein Glaskügel ist leider bei der Reparatur. Könntest Du vielleicht Dein Code posten?
> Er macht aber trotzdem was er machen sollte.
Darauf wurde ich mich aber nicht verlassen
> 1)Ist es von Bedeutung, das in dem zu kopierenden Bereich formeln sind.
Kommt auf die Formeln darauf an
> 2)Kan man statt der Formeln einfacha auch die Werte kopieren?
Ja. Nutz mal den Makro Recorder und zeichne auf
a) Bereich markieren/Bereich einfügen
b) Bereich markieren/Inhalte einfügen/Werte
Dann siehst Du den Unterschied
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Einer Range eine Variable zuweisen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Variable deklarieren: Verwende Dim, um eine Range-Variable zu deklarieren. Beispiel:

    Dim x As Range
  2. Range zuweisen: Nutze Set, um einer Range-Variable einen Bereich zuzuweisen. Beispiel:

    Set x = Worksheets("Sheet1").Range("A1:A20")
  3. Range verwenden: Du kannst die Range-Variable dann nutzen, um Werte zuzuweisen oder zu kopieren:

    Worksheets("Sheet2").Range("B1:B20").Value = x.Value

Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des gültigen Bereichs"
    Dieser Fehler tritt oft auf, wenn ein nicht existierendes Arbeitsblatt oder eine falsche Range angegeben wird. Überprüfe die Namen und Bereiche, die du verwendest.

  • Fehler bei der Verwendung von Set
    Achte darauf, dass du Set verwendest, wenn du eine Range-Variable zuweist. Ein Beispiel:

    Set x = Worksheets("master").Range("D4:O4")

Alternative Methoden

  • Array verwenden: Du kannst auch ein Array verwenden, um Werte aus einer Range zu speichern:

    Dim arr As Variant
    arr = Worksheets("Sheet1").Range("A1:A20").Value
  • Mit Cells arbeiten: Eine andere Möglichkeit ist, die Cells-Methode zu verwenden, um eine Range zu definieren:

    Set x = Worksheets("Sheet1").Cells(1, 1).Resize(20, 1)

Praktische Beispiele

  1. Kopieren einer Range in ein anderes Arbeitsblatt:

    Sub KopiereRange()
       Dim rngSource As Range
       Set rngSource = Worksheets("Sheet1").Range("A1:A10")
       rngSource.Copy Destination:=Worksheets("Sheet2").Range("A1")
    End Sub
  2. Werte aus einer Range in eine Variable speichern:

    Sub WerteSpeichern()
       Dim myValue As Variant
       myValue = Worksheets("Sheet1").Range("B1").Value
    End Sub

Tipps für Profis

  • Verwende With-Anweisungen: Um den Code leserlicher zu gestalten und die Performance zu verbessern, nutze With:

    With Worksheets("Sheet1")
      Set x = .Range("A1:A20")
      .Range("B1:B20").Value = x.Value
    End With
  • Bereich dynamisch bestimmen: Um einen dynamischen Bereich zu erstellen, kannst du die letzte Zeile ermitteln:

    Dim lastRow As Long
    lastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    Set x = Worksheets("Sheet1").Range("A1:A" & lastRow)

FAQ: Häufige Fragen

1. Wie kann ich eine Range mit einer Variablen in VBA zuweisen?
Du musst Set verwenden, um die Range-Variable zu initialisieren. Beispiel:

Set x = Worksheets("Sheet1").Range("A1:A20")

2. Kann ich mehrere Ranges in einer Variable speichern?
Nein, eine Variable kann nur eine Range zur gleichen Zeit speichern. Du kannst jedoch ein Array verwenden, um mehrere Ranges zu speichern.

3. Warum funktioniert mein Code nicht, wenn ich Range ohne Set verwende?
Weil Range ein Objekt ist und du Set benötigst, um Objektreferenzen zuzuweisen.

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