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

For-Schleifen-Schritt überspringen

Forumthread: For-Schleifen-Schritt überspringen

For-Schleifen-Schritt überspringen
04.03.2003 19:48:08
Folker
Wie kann ich denn in einer for Schleife direkt zur nächsten Zelle gehen und die dazwischenliegenden Schritte überspringen? Da gibt es doch sicher was besseres als meine umständliche Lösung oder? Sowas wie if rng.value = "" then next rng hätte ich mir vorgestellt aber das geht nicht

sub x()
for each rng in range("A1:A1000")
if rng.value = "" then goto skip
.
.
.
next rng
exit sub
skip:
end sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: For-Schleifen-Schritt überspringen
04.03.2003 19:50:18
Hajo_Zi

Hallo Folker

so ganz klar ist mir nicht was Du willst. Willst Du die For Next Schleife verlassen dann Exit For.

Gruß hajo

Re: For-Schleifen-Schritt überspringen
04.03.2003 20:05:08
Folker

Nein will ich nicht, ich will nur in die nächste Zelle gehen. Das ... steht für einen aufwendigen Code der viel Zeit benötigt und unnötig ist auszuführen wenn die Zelle leer ist. Hab beim Code aber auch Schmarrn geschrieben hab ich gerade gemerkt.

sub x()
for each rng in range("A1:A1000")
if rng.value = "" then goto skip
.
.
.
skip:
next rng
end sub

Anzeige
Re: For-Schleifen-Schritt überspringen
04.03.2003 20:06:56
Hajo_Zi

Hallo Folker

warum nicht
sub x()
for each rng in range("A1:A1000")
if rng.value <> ""
.
.
.
end if
next rng
end sub

komt ohne Goto aus

Gruß hajo

Re: For-Schleifen-Schritt überspringen
05.03.2003 09:50:08
Folker

Jup geht natürlich auch, hatte gedacht es gibt vielleicht einen geschmeidigen Einzeiler. Trotzdem Danke.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

For-Schleifen in VBA: Schritte überspringen


Schritt-für-Schritt-Anleitung

Um in einer VBA For-Schleife direkt zur nächsten Zelle zu springen und die aktuellen Schritte zu überspringen, kannst Du den folgenden Code verwenden. Dieser vermeidet die Verwendung von Goto, was den Code klarer und lesbarer macht.

Sub x()
    For Each rng In Range("A1:A1000")
        If rng.Value <> "" Then
            ' Hier kannst Du Deinen Code einfügen, der ausgeführt werden soll
        End If
    Next rng
End Sub

In diesem Beispiel überprüfst Du, ob die Zelle nicht leer ist (If rng.Value <> ""). Wenn die Zelle leer ist, wird der Code in der Schleife einfach übersprungen und es geht zur nächsten Iteration über.


Häufige Fehler und Lösungen

  1. Fehler: Schleife wird nicht korrekt durchlaufen

    • Lösung: Stelle sicher, dass Du die Schleife korrekt implementierst und die richtige Range angibst. Achte darauf, dass der Code innerhalb der Schleife nur dann ausgeführt wird, wenn die Bedingung erfüllt ist.
  2. Fehler: Verwendung von Goto

    • Lösung: Vermeide Goto, da es den Code schwer verständlich macht. Nutze stattdessen If...Then Bedingungen, um die nächste Iteration der For Next Schleife zu erreichen.

Alternative Methoden

Eine alternative Methode, um einen Schritt in einer For-Schleife zu überspringen, ist die Verwendung von Continue For. Diese Methode ist in VBA nicht verfügbar, aber Du kannst die Logik mit If-Bedingungen nachahmen.

Sub x()
    For Each rng In Range("A1:A1000")
        If rng.Value = "" Then
            ' Nichts tun, einfach zur nächsten Iteration gehen
        Else
            ' Hier kannst Du Deinen Code einfügen
        End If
    Next rng
End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie Du excel vba for schleife überspringen in Deinen Projekten verwenden kannst:

  1. Zellen formatieren, wenn sie nicht leer sind:
Sub FormatNonEmptyCells()
    For Each rng In Range("A1:A1000")
        If rng.Value <> "" Then
            rng.Font.Bold = True
        End If
    Next rng
End Sub
  1. Werte addieren, die nicht leer sind:
Sub SumNonEmptyCells()
    Dim total As Double
    total = 0
    For Each rng In Range("A1:A1000")
        If rng.Value <> "" Then
            total = total + rng.Value
        End If
    Next rng
    MsgBox "Die Summe beträgt: " & total
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Arbeite mit For Each-Schleifen, wenn Du durch Zellen in einem Bereich iterierst. Dies ist oft einfacher und klarer als For i = 1 To ....
  • Teste Deinen Code in kleinen Abschnitten, um sicherzustellen, dass alles wie gewünscht funktioniert, bevor Du zu komplexeren Logiken übergehst.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen in einer For-Schleife prüfen?
Du kannst mehrere If-Bedingungen innerhalb der Schleife verwenden. Nutze ElseIf oder verschachtelte If-Anweisungen, um verschiedene Bedingungen zu überprüfen.

2. Kann ich eine For-Schleife vorzeitig beenden?
Ja, Du kannst Exit For verwenden, um die Schleife vorzeitig zu beenden, wenn eine bestimmte Bedingung erfüllt ist.

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