Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

for - next und if - end if "verwoben"

for - next und if - end if "verwoben"
04.06.2022 10:14:07
MiSchi
Hallo Helfende!
Ich habe keine Idee wie ich den Fehler Next ohne For behoben bekomme.
Das Problem scheint:
For...
if...
Next
End if...
hier der entsprechende Ausschnitt:

   w = 1    'Anzahl Treffer
For lngzeile1 = 1 To lngZeile1Max     'QuellZeile
For lngzeile2 = 2 To lngZeile1Max     'SuchZeile
If VarDat1(lngzeile1, 7)  "" Then      'schon verglichen und mit Treffer T/TG markiert - überspringen
If VarDat1(lngzeile1, 1) = VarDat1(lngzeile2, 1) Then      '1: Titel => gleicher Titel?
VarDat1(lngzeile1, 7) = "T"                               '7: neue Hilfsspalte
VarDat1(lngzeile2, 7) = "T"
If VarDat1(lngzeile1, 4) = VarDat1(lngzeile2, 4) Then      '4: Größe => Titel und Größe gleich?
VarDat1(lngzeile1, 7) = "TG" & w
VarDat1(lngzeile2, 7) = "TG" & w
If w_max 
Danke für Eure Hilfe, viele Grüße
MiSchi

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

Betreff
Datum
Anwender
Anzeige
AW: for - next und if - end if "verwoben"
04.06.2022 10:46:23
Oberschlumpf
Hi,
ich hab zuerst mal bei deinem falschen Code die Zeilen so "zusammengerückt", wie sie zueinander gehören...sollten:

w = 1    'Anzahl Treffer
For lngzeile1 = 1 To lngZeile1Max     'QuellZeile
For lngzeile2 = 2 To lngZeile1Max     'SuchZeile
If VarDat1(lngzeile1, 7)  "" Then      'schon verglichen und mit Treffer T/TG markiert - überspringen
If VarDat1(lngzeile1, 1) = VarDat1(lngzeile2, 1) Then      '1: Titel => gleicher Titel?
VarDat1(lngzeile1, 7) = "T"                               '7: neue Hilfsspalte
VarDat1(lngzeile2, 7) = "T"
If VarDat1(lngzeile1, 4) = VarDat1(lngzeile2, 4) Then      '4: Größe => Titel und Größe gleich?
VarDat1(lngzeile1, 7) = "TG" & w
VarDat1(lngzeile2, 7) = "TG" & w
If w_max 
Erklärungen, wie ich das meine:
- alles, was außerhalb von For/Next, If/End if, usw steht, bleibt ganz links
- alles, was zu For lngzeile1 / Next lngzeile1 gehört, wird eingerückt - hier sieht man schon, dass Next lngzeile1 gar nicht vorhanden ist
- alles, was zu If VarDat1(lngzeile1, 7) "" Then gehört, wird noch weiter eingerückt, weil es ja "innerhalb" von For lngzeile1 steht - und auch hier sieht man, dass das dazugehörige End If ' die schon verglichen Abfrage muß bis hier her springen außerhalb von For lngzeile1 steht, und somit gar nicht mehr für If VarDat1(lngzeile1, 7)... "erreichbar" ist
So, bis hier wollte ich nur erst mal verständlich machen, dass zumindest ich so vorgehe, dass ich alle zusammenhängende For/Next, If/End If, Select Case/End Select, Do/Loop, usw usw jeder für sich einrücke, damit ich eben nicht so den Überblick verliere, wie es dir passiert ist.
(ich hoffe, du hast mich ein bisschen verstanden :-) )
nachdem alles korrigiert ist (und vorausgesetzt, ich hab deinen Code richtig interpretiert^^ :-) ), dann müsste es so aussehen:

w = 1    'Anzahl Treffer
For lngzeile1 = 1 To lngZeile1Max     'QuellZeile
For lngzeile2 = 2 To lngZeile1Max     'SuchZeile
If VarDat1(lngzeile1, 7)  "" Then      'schon verglichen und mit Treffer T/TG markiert - überspringen
If VarDat1(lngzeile1, 1) = VarDat1(lngzeile2, 1) Then      '1: Titel => gleicher Titel?
VarDat1(lngzeile1, 7) = "T"                               '7: neue Hilfsspalte
VarDat1(lngzeile2, 7) = "T"
End If
If VarDat1(lngzeile1, 4) = VarDat1(lngzeile2, 4) Then      '4: Größe => Titel und Größe gleich?
VarDat1(lngzeile1, 7) = "TG" & w
VarDat1(lngzeile2, 7) = "TG" & w
End If
If w_max 
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: for - next und if - end if "verwoben"
04.06.2022 10:47:02
onur
Sämtliche If-Then Schleifen müssen innerhalb der ForNext-Schleife, in der sie beginnen, auch wieder aufhören.

For
For
If
If
End If
End If
Next
Next
Wen der Code RICHTIG eingerückt wäre, würdest du auch sehen, wo genau das Problem ist.
Und wenn du eine ForNext-Schleife verlassen willst, wenn IF nicht zutrifft, dann mit "Exit For".
AW: for - next und if - end if "verwoben"
04.06.2022 11:51:47
GerdL
Moin

For lngzeile1 = 1 To lngZeile1Max     'QuellZeile
If VarDat1(lngzeile1, 7)  "" Then    'schon verglichen und mit Treffer T/TG markiert - überspringen
w = 1    'Anzahl Treffer
For lngzeile2 = 2 To lngZeile1Max     'SuchZeile
'1: Titel => gleicher Titel?
If VarDat1(lngzeile1, 1) = VarDat1(lngzeile2, 1) Then
VarDat1(lngzeile1, 7) = "T"                '7: neue Hilfsspalte
VarDat1(lngzeile2, 7) = "T"
'4: Größe => Titel und Größe gleich?
If VarDat1(lngzeile1, 4) = VarDat1(lngzeile2, 4) Then
VarDat1(lngzeile1, 7) = "TG" & w
VarDat1(lngzeile2, 7) = "TG" & w
If w_max 
Gruß Gerd
Anzeige
AW: for - next und if - end if "verwoben"
04.06.2022 16:09:37
MiSchi
... so wieder kurz zurück
Herzlichen Dank für Eure Antworten, Hilfen und Erklärungen!
Ein "Sorry" vorab, ich habe leider vergessen die letzte Zeile Code zu kopieren - aber an Next lngzeile1 lag es ja grundsätzlich nicht, sondern an der ineinander Schachtelung von For und If.
Durch Eure korrigierten Codes habe ich dieses Problem gelöst :-)
Nach dem der Code nun läuft offenbarten sich ein paar Denkfehler - ich arbeite daran und melde mich wieder
Viele Grüße
MiSchi
herzlichen Dank Allen!
09.06.2022 08:08:47
MiSchi
In meinem Projekt komme ich langsam weiter...
Herzlichen Dank für Eure Antworten, Hilfen und Erklärungen!
@ onur: dass es wohl nur in dieser Reihenfolge geht hatte ich geahnt - mir war nur nicht klar wie.
@ Gerd: hier erkannte ich meinen Denkfehler.
Wenn
If VarDat1(lngzeile1, 7) "" Then
zutrifft, müssen beide if-Abfragen übersprungen werden.
Also kann ich diese Abfrage auch vor das 2. For setzen, das wird früher nicht gebraucht.
@ Thorsten: deine Korrektur habe ich dann auch verstanden
Zuerst dachte ich, da die EndIf nicht tiefer stehen, dass der Ablauf anders als geplant ist.
Kommt aber zum selben Ergebnis - nur das w=1 musste zwischen die beiden Next
Klasse noch mal VIELEN DANK!
MiSchi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige