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

Warum for ohne next???

Forumthread: Warum for ohne next?

Warum for ohne next?
15.12.2016 18:35:52
Christof
Was mache ich verkeht?
LG Christof
Sub Prüfen()
Application.ScreenUpdating = False
Dim ZählerNeu As Long
Dim ZeilenNeu As Long
ZeilenNeu = Workbooks("Schäden in Vorlage tool").Sheets("Neu").Range("A" & Rows.Count).End(xlUp) _
.Row
For ZählerNeu = 1 To ZeilenNeu
Dim Zeile As Long
Dim Suchkriterium As String
Suchkriterium = Workbooks("Schäden in Vorlage tool").Sheets("Neu").Cells(ZählerNeu, 2). _
Value
Zeile = Workbooks("Schäden in Vorlage tool").Sheets("Alt").Columns("B:B").Find(What:= _
Suchkriterium, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
If Workbooks("Schäden in Vorlage tool").Sheets("Neu").Cells(ZählerNeu, 7).Value =  _
Workbooks("Schäden in Vorlage tool").Sheets("Alt").Cells(Zeile, 7).Value Then
Workbooks("Schäden in Vorlage tool").Sheets("Neu").Row(Zeile).Copy
Dim ZeilenPrüfung As Long
ZeilenPrüfung = Workbooks("Schäden in Vorlage tool").Sheets("Prüfung").Range("A" & Rows. _
Count).End(xlUp).Row
Workbooks("Schäden in Vorlage tool").Sheets("Prüfung").Row(ZeilenPrüfung).Paste
Next
Application.ScreenUpdating = Ture
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW:es fehlt ein end if
15.12.2016 18:41:09
hary
Moin
Muss schon sagen sehr uebersichtlich der Code. ;-)
Ueber dem Next muss ein End If
gruss hary
AW:und Ture muss True sein. gruss owT
15.12.2016 18:44:12
hary
.
Info: diese Zeile ist nicht mehr nötig ...
15.12.2016 18:50:47
Matthias
Hi hary,
... wird automatisch nach Codeausführung auf True gesetzt.
Prüf das mal mit einer Abfrage unmittelbar nach Sub(Dein Code)
mit ner MsGBox
Wenn die Zeile allerdings im Code steht sollte sie auch richtig gschrieben sein ;-)
Also hast Du generell trotzdem Recht.
Gruß Matthias
Anzeige
AW:@Matthias
15.12.2016 18:55:42
hary
Moin Matthias
Ich weiss es, falle aber immer wieder darauf rein. Heute schon zum zweiten Mal.
"Also hast Du generell trotzdem Recht."
Danke und ich arbeite dran. ;-)
Gruss hary
weil (End If) fehlt ... owT
15.12.2016 18:41:36
Matthias
AW: Warum for ohne next?
15.12.2016 18:48:22
Daniel
Hi
Weil das END IF für dein IF_THEN fehlt.
da der IF-Block so noch nicht abgeschlossen ist, vermutet der Compiler, dass das NEXT noch in den Wahrteil des If-Blocks gehört.
Da aber For-Next und IF-Then nur ineinander geschachtelt werden können, muss das FOR für dieses NEXT auch innerhalb des IF-Blocks stehen.
da in dem IF-Block (dh zwischen dem IF_THEN und dem NEXT aber kein FOR steht, fehlt es und es muss zu dieser Fehlermeldung kommen.
da der Compiler den Code von oben nach unten durchgeht, wird dieser Fehler als erstes bemerkt, da das eigentlich fehlende END IF ja noch kommen könnte.
Gruß Daniel
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

Infobox / Tutorial

Fehlerbehebung bei "Next" ohne "For" in VBA


Schritt-für-Schritt-Anleitung

Wenn du mit VBA arbeitest und eine Fehlermeldung erhältst, die besagt, dass ein Next-Befehl ohne das entsprechende For verwendet wird, gibt es einige Schritte, die du befolgen kannst, um das Problem zu beheben:

  1. Überprüfe deinen Code: Stelle sicher, dass jede Schleife mit einem For-Befehl ein passendes Next hat.
  2. Füge das fehlende End If hinzu: Wenn dein For-Befehl in einem If-Block steht, muss der If-Block mit einem End If abgeschlossen werden. Dies ist entscheidend, um den Compiler nicht zu verwirren.
  3. Korrigiere Schreibfehler: Achte darauf, dass alle Schlüsselwörter richtig geschrieben sind. Ein häufiger Fehler ist z.B. Ture statt True.
  4. Testlauf: Führe den Code nach den Änderungen erneut aus, um sicherzustellen, dass der Fehler behoben ist.

Häufige Fehler und Lösungen

  • Fehlendes End If: Wenn du ein If-Statement ohne das passende End If hast, wird der Compiler denken, dass das Next-Statement zum If-Block gehört. Achte darauf, dass jede Bedingung korrekt abgeschlossen wird.

  • Schreibfehler bei True: Achte darauf, dass du True richtig schreibst. Ein Tippfehler wie Ture führt zu einem Laufzeitfehler.

  • Verwenden von Find: Wenn du die Find-Methode verwendest, stelle sicher, dass das Ergebnis überprüft wird, bevor du darauf zugreifst. Ein nicht gefundenes Element könnte zu einem Fehler führen.


Alternative Methoden

Wenn du Schwierigkeiten mit der For-Schleife hast oder eine andere Methode ausprobieren möchtest, kannst du folgende Alternativen in Betracht ziehen:

  • Do While-Schleife: Diese Schleifenart ist flexibler und kann nützlich sein, wenn du nicht genau weißt, wie viele Iterationen du benötigst.

    Dim ZählerNeu As Long
    ZählerNeu = 1
    Do While ZählerNeu <= ZeilenNeu
      ' Dein Code hier
      ZählerNeu = ZählerNeu + 1
    Loop
  • For Each-Schleife: Wenn du mit Sammlungen arbeitest, ist die For Each-Schleife eine gute Alternative, da sie einfacher zu lesen und zu verwenden ist.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man den Fehler "Next ohne For" vermeiden kann:

Sub Beispiel()
    Dim Zähler As Long
    For Zähler = 1 To 10
        If Zähler Mod 2 = 0 Then
            Debug.Print Zähler & " ist gerade."
        End If
    Next Zähler
End Sub

In diesem Beispiel wird die Schleife korrekt mit einem Next-Befehl abgeschlossen, und die If-Bedingung hat ein passendes End If.


Tipps für Profis

  • Verwende die Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren, was hilft, Fehler zu vermeiden.
  • Debugging-Tools nutzen: Nutze die Debugging-Tools in VBA, um den Code Schritt für Schritt zu durchlaufen und Fehler zu identifizieren.
  • Code kommentieren: Kommentiere deinen Code, um die Lesbarkeit zu erhöhen und anderen (oder dir selbst) zu helfen, den Zweck jedes Teils zu verstehen.

FAQ: Häufige Fragen

1. Warum bekomme ich den Fehler "Next ohne For"? Der Fehler tritt auf, wenn ein Next-Befehl ohne das zugehörige For verwendet wird. Überprüfe deinen Code auf fehlende For-Befehle oder End If-Anweisungen.

2. Wie kann ich sicherstellen, dass mein Code fehlerfrei ist? Achte auf korrekte Syntax, verwende die Option Explicit, und teste deinen Code regelmäßig, um Fehler frühzeitig zu erkennen.

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