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