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

Forumthread: Range in Schleife

Range in Schleife
16.11.2007 11:07:42
Benny
Hallo nochmal,
ich habe ein makro mit drei Ranges namens y1,y2 und y3.
in der schleife soll er erst y1 nehmen im zweiten y2, usw.! Wie spreche ich das Range richtig an?
Range(y+i) geht nicht und Range (y&i) auch nicht! (i ist mein Zähler)
Danke!

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range in Schleife
16.11.2007 11:10:00
Hajo_Zi
Hallo Benny,
benutze Cells(Zeile,Spalte) oder Range("Y" & I)

AW: Range in Schleife
16.11.2007 11:17:20
Benny
Range("Y"&i) funzt nicht! Er nimmt jetzt zelle Y1 ... Y2 ... Y3
cells raff ich nicht!

AW: Range in Schleife
16.11.2007 11:18:00
Hajo_Zi
Hallo Benny,
dazu kann ich nichts schreiben, da ich es ablehne über das internet auf fremde Rechner zu schauen. Mein Excel macht es.
Gruß Hajo
Ein Hallo zu Beginn und ein Gruß am Ende läst den Beitrag doch gleich viel freundlicher aussehen. Auch wenn Du den Beitrag am Computer eingibst sitzen an der anderen Seite doch Leute und keine Maschinen die Deine Frage beantworten und da sollte Zeit für die paar Worte doch vorhanden sein.

Anzeige
AW: Range in Schleife
16.11.2007 11:21:00
Mag
Hi,

Sub ttt()
'Ich habe ein makro mit drei Ranges namens y1,y2 und y3.
'in der schleife soll er erst y1 nehmen im zweiten y2, usw.! Wie spreche ich das Range richtig  _
an?
'Range(y+i) geht nicht und Range (y&i) auch nicht! (i ist mein Zähler)
Dim y1 As Range, y2 As Range, y3 As Range, rng As Range, myrng As Range
Set y1 = [A1]: Set y2 = [A2]: Set y3 = [A3]
Set myrng = Union(y1, y2, y3)
For Each rng In myrng
MsgBox rng
Next
End Sub


Gruss

Anzeige
AW: Range in Schleife
16.11.2007 11:27:37
Mag
.... oder:

Sub ttt()
'Ich habe ein makro mit drei Ranges namens y1,y2 und y3.
'in der schleife soll er erst y1 nehmen im zweiten y2, usw.! Wie spreche ich das Range richtig  _
an?
'Range(y+i) geht nicht und Range (y&i) auch nicht! (i ist mein Zähler)
Dim y1 As Range, y2 As Range, y3 As Range, myrng As Range, i As Long
Set y1 = [A1]: Set y2 = [A2]: Set y3 = [A3]
Set myrng = Union(y1, y2, y3)
For i = 1 To myrng.Count
MsgBox myrng(i)
Next i
End Sub


Gruss

Anzeige
;

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

Ranges in einer Schleife korrekt ansprechen


Schritt-für-Schritt-Anleitung

Um in Excel VBA Ranges in einer Schleife korrekt anzusprechen, kannst du die folgenden Schritte befolgen:

  1. Definiere deine Ranges: Erstelle Variablen für die Ranges, die du verwenden möchtest. Zum Beispiel:

    Dim y1 As Range, y2 As Range, y3 As Range
    Set y1 = [A1]: Set y2 = [A2]: Set y3 = [A3]
  2. Union der Ranges: Fasse die Ranges in einer Union zusammen, um sie in einer Schleife zu durchlaufen:

    Dim myrng As Range
    Set myrng = Union(y1, y2, y3)
  3. Schleife durch Ranges: Verwende eine For Each-Schleife, um durch die Ranges zu iterieren:

    Dim rng As Range
    For Each rng In myrng
       MsgBox rng
    Next rng
  4. Alternative Schleife: Du kannst auch eine For-Schleife verwenden, um die einzelnen Ranges aufzurufen:

    Dim i As Long
    For i = 1 To myrng.Count
       MsgBox myrng(i)
    Next i

Häufige Fehler und Lösungen

  • Fehler: Range(y+i) oder Range("y"&i) funktioniert nicht.

    • Lösung: Verwende stattdessen Cells(Zeile, Spalte) oder kombiniere die Ranges in einer Union, wie oben beschrieben.
  • Fehler: Der Code zeigt nur die ersten Zellen Y1, Y2, Y3.

    • Lösung: Stelle sicher, dass du die Ranges korrekt in einer Union zusammenfasst, um alle gewünschten Zellen einzuschließen.

Alternative Methoden

Eine alternative Methode zur Ansprache von Ranges in einer Schleife ist die Verwendung von Cells. Das Beispiel könnte wie folgt aussehen:

For i = 1 To 3
    MsgBox Cells(i, 1).Value  ' Gibt die Werte von A1, A2 und A3 aus
Next i

Diese Methode ist besonders nützlich, wenn du mit dynamischen Ranges arbeitest, da sie flexibler ist.


Praktische Beispiele

Hier ist ein vollständiges Beispiel, das zeigt, wie du Ranges in einer Schleife ansprechen kannst:

Sub Beispiel()
    Dim y1 As Range, y2 As Range, y3 As Range
    Set y1 = [A1]: Set y2 = [A2]: Set y3 = [A3]
    Dim myrng As Range
    Set myrng = Union(y1, y2, y3)

    Dim rng As Range
    For Each rng In myrng
        MsgBox rng.Address & ": " & rng.Value
    Next rng
End Sub

In diesem Beispiel werden die Adressen und Werte der Zellen A1, A2 und A3 angezeigt.


Tipps für Profis

  • Verwende Option Explicit: Aktiviere die Option, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.

  • Optimierung der Schleifen: Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Schleifenoperationen zu deaktivieren und die Leistung zu verbessern.

  • Debuggen: Setze Breakpoints und verwende die Debug.Print-Anweisung, um den Wert von Variablen während der Ausführung zu überwachen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Ranges in einer Schleife verarbeiten?
Du kannst mehrere Ranges mit der Union-Methode kombinieren und dann eine For Each-Schleife verwenden, um durch sie zu iterieren.

2. Was ist der Unterschied zwischen Cells und Range?
Cells ist flexibler, da du Zeilen- und Spaltenindizes verwenden kannst, während Range spezifische Zelladressen benötigt. Cells ist ideal für dynamische Ranges.

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