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

Forumthread: For-Schleife, die immer 1 Zeile nach rechts geht

For-Schleife, die immer 1 Zeile nach rechts geht
20.10.2005 15:38:16
Julia
Hallo Leute,
ich habe folgendes Problem:
Ich habe folgende Schleife programmiert, funktioniert aber nicht:
Set rng = Worksheets(1).Cells(4, 7)

For m = 8 To l
rng.Offset(0, 1) = i
i = i + 1
Next m
Die Variablen i und l habe ich vorher berechnet und "rng" als Range deklariert.
Die For-Schleife soll jedes Mal, wenn sie die For-Schleife durchläuft, um eine Zelle nach rechts springen und dort den jeweiligen Wert eintragen, bis die For-Schleife den Wert der Variablen l erreicht.
Bei mir wird aber immer nur in die ersten beiden Zellen der Wert geschrieben und dann wird die For-Schleife verlassen.
Könnt ihr mir sagen, was ich schreiben muss, dass immer eine Zelle weiter gesprungen wird, bis der Endwert der For-Schleife erreicht ist?
Bitte.
Grüsse von Julia
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: For-Schleife, die immer 1 Zeile nach rechts geht
20.10.2005 15:51:39
u_
Hallo,
rng.Offset(0, m-1) = i
Gruß
Geist ist geil!
AW: For-Schleife, die immer 1 Zeile nach rechts geht
20.10.2005 15:52:59
Dominic
Hallo Julia,
also, Du schreibs immer wieder in die eine Zelle undzwar cells(4,8) rein, rng immer das selbe ist: rng.Offset(0, 1).
Lösungen:
For m = 8 To l
rng.Offset(0, 1) = i
Set rng= rng.Offset(0, 1)
i = i + 1
Next m
Oder:
For m = 8 To l
rng.Offset(0, m-7) = i
i = i + 1
Next m
Gruß
Dominic
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

For-Schleife in Excel VBA: Zeilen nach rechts durchlaufen


Schritt-für-Schritt-Anleitung

Um eine For-Schleife in Excel VBA zu erstellen, die immer eine Zelle nach rechts springt und dort einen Wert einträgt, folge diesen Schritten:

  1. Range-Objekt erstellen:

    Set rng = Worksheets(1).Cells(4, 7)

    Hier wird rng als das Startfeld (G4) deklariert.

  2. For-Schleife aufsetzen:

    For m = 8 To l
       rng.Offset(0, m - 8) = i
       i = i + 1
    Next m

    In dieser Schleife wird rng.Offset(0, m - 8) verwendet, um in jede nächste Zelle nach rechts zu schreiben. m - 8 sorgt dafür, dass ab der ersten Iteration in die Zelle G4 (G4 = m=8) und dann nach rechts (G5, G6…) geschrieben wird.

  3. Variablen definieren: Stelle sicher, dass du die Variablen i und l korrekt initialisiert hast, bevor du die Schleife startest.


Häufige Fehler und Lösungen

  • Fehler: Immer nur in die ersten beiden Zellen schreiben
    Lösung: Achte darauf, dass du den Offset immer korrekt aktualisierst. Nutze Set rng = rng.Offset(0, 1) innerhalb der Schleife, um rng nach jeder Iteration zu aktualisieren:

    Set rng = rng.Offset(0, 1)
  • Fehler: Falscher Offset
    Wenn du rng.Offset(0, 1) verwendest, wird immer nur eine Zelle nach rechts geschrieben. Ändere es in rng.Offset(0, m - 8), um die Zellen korrekt zu durchlaufen.


Alternative Methoden

Es gibt verschiedene Ansätze, um in Excel VBA eine Schleife zu erstellen, die Zellen nach rechts durchläuft:

  1. Alternative Schleifenstruktur:

    For m = 8 To l
       rng.Offset(0, m - 7) = i
       i = i + 1
    Next m

    Hierbei wird m - 7 verwendet, um sicherzustellen, dass du ab der richtigen Zelle startest.

  2. Do While Schleife: Anstatt einer For-Schleife kannst du auch eine Do While Schleife verwenden, um die Zellen zu durchlaufen:

    Do While i <= l
       rng.Offset(0, 1) = i
       Set rng = rng.Offset(0, 1)
       i = i + 1
    Loop

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du eine For-Schleife implementieren kannst, um Werte in aufeinanderfolgende Zellen zu schreiben:

Sub SchreibeNachRechts()
    Dim rng As Range
    Dim i As Integer
    Dim l As Integer

    Set rng = Worksheets(1).Cells(4, 7)
    i = 1
    l = 10  ' Anzahl der Werte, die du eintragen möchtest

    For m = 8 To l
        rng.Offset(0, m - 8) = i
        i = i + 1
    Next m
End Sub

In diesem Beispiel wird die Schleife bis zur 10. Zelle nach rechts fortgesetzt.


Tipps für Profis

  • Verwendung von Variablen: Nutze aussagekräftige Namen für Variablen, um den Code leserlicher zu machen.
  • Debugging: Setze Breakpoints und nutze die Debugging-Tools in VBA, um den Code Schritt für Schritt zu prüfen.
  • Schleifen optimieren: Reduziere die Anzahl der Berechnungen innerhalb der Schleife, um die Ausführung zu beschleunigen.

FAQ: Häufige Fragen

1. Warum funktioniert meine For-Schleife nicht?
Stelle sicher, dass du die richtige Syntax verwendest und dass die Variablen korrekt initialisiert sind.

2. Wie kann ich die Schleife anpassen, um nur bestimmte Werte zu schreiben?
Du kannst Bedingungen innerhalb der Schleife einfügen, um nur bestimmte Werte zu schreiben. Nutze dazu If...Then-Anweisungen.

3. Wie kann ich den Offset dynamisch gestalten?
Verwende eine Variable für den Offset-Wert, um flexibler auf verschiedene Anforderungen zu reagieren.

4. Funktioniert das in allen Excel-Versionen?
Ja, die vorgestellten Methoden sind in Excel VBA für alle gängigen Versionen anwendbar.

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