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

Forumthread: Range über Variablen definieren

Range über Variablen definieren
08.01.2018 08:51:52
Carsten
Hallo,
ich hab ein Problemchen für das ich keine passende Lösung finden kann: Ich möchte eine Range definieren (ziemlich simpel ab "D1" alle 4 spalten, also "D1", "H1", "L1" usw).
Ich hab schon mit Schleifen rumprobiert aber so wirklich funktioniert hat das ganze nicht. Ich wäre wirklich über ein codeschnipselchen dass ich dann anpassen kann sehr dankbar :)
Vielen Dank!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range über Variablen definieren
08.01.2018 08:58:28
UweD
Hallo
so?
Sub Alle4()
    Dim RNG As Range, i As Integer
    For i = 4 To 100 Step 4 'Ende anpassen 
        Set RNG = Cells(1, i)
        
        RNG = "hallo" 'mach was damit 
    
    Next
End Sub

LG UweD
Anzeige
AW: Range über Variablen definieren
08.01.2018 09:40:12
Daniel
Hi
das müsste ggf über eine Schleife mit UNION zusammengestellt werden:
dim rng as Range
Dim S as Long
Set rng = Range("D1")
for S = 8 to 100 Step 4
Set rng = Union(rng, Cells(1, S))
Next
oder so, wenn du es lieber über die Anzahl der Zellen bestimmen willst

dim i as Long
dim rng as Range
set rng = Range("D1")
for i = 1 to 9
Set rng = Union(rng, rng.Offset(0, i * 4))
Next
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Range über Variablen definieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Range in Excel VBA mit Variablen zu definieren, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Ein neues Modul erstellen:

    • Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt, wähle "Einfügen" und dann "Modul".
  3. Code eingeben:

    • Füge den folgenden Code in das Modul ein, um eine Range über eine Schleife zu definieren:
    Sub Alle4()
       Dim RNG As Range, i As Integer
       For i = 4 To 100 Step 4 'Ändere den oberen Wert nach Bedarf
           Set RNG = Cells(1, i)
           RNG.Value = "hallo" 'Mach was damit
       Next
    End Sub
  4. Makro ausführen:

    • Schließe den VBA-Editor und führe das Makro über ALT + F8 aus, um sicherzustellen, dass die Range korrekt definiert wurde.

Häufige Fehler und Lösungen

  • Fehler: "Variable nicht definiert":

    • Stelle sicher, dass alle benötigten Variablen korrekt deklariert sind. Nutze Dim für die Definition von Variablen.
  • Fehler: "Objekt erforderlich":

    • Dies kann passieren, wenn du versuchst, auf ein nicht existierendes Objekt zuzugreifen. Überprüfe, ob die Range korrekt definiert wurde.
  • Fehler bei der Schleife:

    • Achte darauf, dass die Schleifenparameter (wie Step und die Grenzen) richtig gesetzt sind.

Alternative Methoden

Es gibt verschiedene Ansätze, um eine Range mit Variablen zu definieren:

  • Verwendung von Union:

    Dim rng As Range
    Dim S As Long
    Set rng = Range("D1")
    For S = 8 To 100 Step 4
      Set rng = Union(rng, Cells(1, S))
    Next
  • Offset-Methode:

    Dim i As Long
    Dim rng As Range
    Set rng = Range("D1")
    For i = 1 To 9
      Set rng = Union(rng, rng.Offset(0, i * 4))
    Next

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Range in VBA definieren kannst:

  1. Einzelne Zellen ansprechen:

    Dim rng As Range
    Set rng = Cells(1, 4) 'D1
    rng.Value = "Beispiel"
  2. Bereich definieren:

    Dim rng As Range
    Set rng = Range("D1:H1") 'Bereich von D1 bis H1
    rng.Interior.Color = RGB(255, 255, 0) 'Hintergrundfarbe ändern

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden.
  • Um den Speicherbedarf zu optimieren, setze die Range-Variablen auf Nothing, wenn sie nicht mehr benötigt werden.
  • Experimentiere mit Fehlerbehandlungsroutinen, um unerwartete Fehler in deinem Code zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich eine Range mit einer Variablen definieren?
Du kannst eine Range in VBA definieren, indem du die Set-Anweisung verwendest und eine Zelle oder einen Zellbereich angibst.

2. Was ist Union in VBA?
Die Union-Funktion ermöglicht es dir, mehrere Bereiche zu einem einzigen Bereich zusammenzufassen, was nützlich ist, wenn du nicht zusammenhängende Zellen ansprechen möchtest.

3. Wie kann ich sicherstellen, dass meine Variablen korrekt deklariert sind?
Nutze die Dim-Anweisung, um deine Variablen vor der Verwendung zu deklarieren, und aktiviere Option Explicit für deinen Code.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige