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

Forumthread: Range Variable

Range Variable
29.10.2012 08:49:55
Manuela
Guten Morgen,
irgendwie habe ich gerade ein Brett vor dem Kopf und benötige Hilfe. Ich habe mir in Zelle A2 einen Zellenbereich mit Verketten von Sverweisen gebastelt. In meinem Fall steht da jetzt H4:J12 und dieser Bereich soll kopiert werden. Mein Makro möchte aber irgendwie nicht funktionieren... Hat jemand einen Tipp für mich?

Sub DatenAktu()
Dim Bereich As String
Bereich = Range("A2").Value
Range(" & Bereich & ").Copy
end sub

Liebe Grüße,
Manu

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Range Variable
29.10.2012 08:55:04
hary
Hallo
Versuchs so.
Range(Bereich).Copy

gruss hary

AW: Range Variable
29.10.2012 08:57:13
Beverly
Hi Manu,
   Dim Bereich As String
Bereich = Range("A2").Value
Range(Bereich).Copy
oder
   Dim rngBereich As Range
Set rngBereich = Range(Range("A2").Value)
rngBereich.Copy
Set rngBereich = Nothing


Anzeige
Danke!
29.10.2012 09:06:47
Manuela
Danke Euch beiden! :-)
Manchmal kann es so einfach sein... hehe
LG,
Manu

Hab' doch doch noch ne Frage..
29.10.2012 12:24:07
Manuela
Hallo,
ich benötige nochmal Hilfe.. :-(
Irgendwie funktioniert meine Variable nicht so wie gewünscht. Hat jemand einen Tipp für mich?

Sub Test()
Dim BereichListe As String
BereichListe = Range("B1").Value 'Hier steht ein Wert per Sverweis
Range("K10:K18").Copy
Range("L & BereichListe & ").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
Range("M10:M18").Copy
Range("N & BereichListe & ").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
End Sub

LG,
Manu

Anzeige
AW: Hab' doch doch noch ne Frage..
29.10.2012 12:37:08
Rudi
Hallo,
Range("L" & BereichListe).Select
Gruß
Rudi

AW: Hab' doch doch noch ne Frage..
29.10.2012 12:38:51
hary
Hallo
Wenn in B1 eine Zahl rauskommt dann:
Dim BereichListe As Long
BereichListe = Range("B1").Value 'Hier steht ein Wert per Sverweis
Range("K10:K18").Copy
Range("L" & BereichListe).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("M10:M18").Copy
Range("N" & BereichListe).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False

gruss hary

Anzeige
AW: oder einfach
29.10.2012 12:43:40
hary
Hallo nochmal
einfach so:
Dim BereichListe As Long
BereichListe = Range("B1").Value 'Hier steht ein Wert per Sverweis
Range("L" & BereichListe).Resize(9, 1).Value = Range("K10:K18").Value
Range("N" & BereichListe).Resize(9, 1).Value = Range("M10:M18").Value

gruss hary

Anzeige
Vielen Dank!
29.10.2012 15:11:19
Manuela
Danke Euch beiden :-)
LG
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Arbeiten mit Range Variablen


Schritt-für-Schritt-Anleitung

Um in Excel VBA mit Range Variablen zu arbeiten, folge diesen Schritten:

  1. Definiere die Variable: Lege zuerst die Variable für den Bereich fest. Du kannst entweder einen String oder ein Range-Objekt verwenden.

    Dim Bereich As String
    Bereich = Range("A2").Value
  2. Kopiere den Bereich: Verwende die Variable, um den gewünschten Bereich zu kopieren.

    Range(Bereich).Copy
  3. Setze eine Range Variable: Alternativ kannst du die Range auch direkt in eine Range-Variable setzen.

    Dim rngBereich As Range
    Set rngBereich = Range(Range("A2").Value)
    rngBereich.Copy

Häufige Fehler und Lösungen

  • Fehler: „Variable nicht definiert“ beim Verwenden von Range.

    • Lösung: Stelle sicher, dass du die Variable korrekt definiert hast, z.B. Dim Bereich As String.
  • Fehler: „Typenkonflikt“.

    • Lösung: Wenn du mit numerischen Werten arbeitest, verwende Dim BereichListe As Long anstelle eines Strings.
  • Fehler: Kopieren funktioniert nicht.

    • Lösung: Überprüfe, ob der Wert in der Zelle (z.B. A2) korrekt ist und einen gültigen Bereich darstellt.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, mit Range Variablen in Excel VBA zu arbeiten:

  1. Direktes Arbeiten mit Variablen: Du kannst Range-Objekte direkt in Variablen speichern, was den Code leserlicher macht.

    Dim rngBereich As Range
    Set rngBereich = Range("K10:K18")
    rngBereich.Copy
  2. Verwendung von Resize: Mit der Resize-Methode kannst du den Bereich anpassen.

    Range("L" & BereichListe).Resize(9, 1).Value = Range("K10:K18").Value

Praktische Beispiele

Hier sind einige praktische Beispiele, um mit excel vba range variable zu arbeiten:

  1. Bereich kopieren und einfügen:

    Sub DatenAktu()
       Dim Bereich As String
       Bereich = Range("A2").Value
       Range(Bereich).Copy
       Range("Z1").PasteSpecial Paste:=xlPasteValues
    End Sub
  2. Dynamisches Einfügen basierend auf einer anderen Zelle:

    Sub Test()
       Dim BereichListe As Long
       BereichListe = Range("B1").Value
       Range("K10:K18").Copy
       Range("L" & BereichListe).PasteSpecial Paste:=xlPasteValues
    End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind.
  • Nutze With-Anweisungen, um Code zu optimieren und die Lesbarkeit zu verbessern:
    With Range("K10:K18")
      .Copy
      .Offset(0, 1).PasteSpecial Paste:=xlPasteValues
    End With
  • Überlege, die Application.CutCopyMode = False zu verwenden, um den Kopiermodus zu deaktivieren und die Zwischenablage zu leeren.

FAQ: Häufige Fragen

1. Wie definiere ich eine Range Variable in VBA?
Du kannst eine Range Variable mit Dim definieren, wie folgt:

Dim rng As Range
Set rng = Range("A1:A10")

2. Was ist der Unterschied zwischen String und Range in VBA?
Ein String ist ein Text, während ein Range-Objekt eine Referenz auf einen bestimmten Zellbereich in Excel darstellt.

3. Wie kann ich einen Bereich dynamisch anpassen?
Verwende die Resize-Methode, um die Größe deines Bereichs anzupassen, basierend auf anderen Zellen oder Variablen.

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