1. gefunden ist eine Boolean Variable und kennt die Zustände True und False. Die zweite Schleife wird so lange durchlaufen bis die von dir erstellte Bedingung erfüllt ist, wenn sie erfüllt ist wird die Schleife verlassen und "gefunden" auf true gesetzt. Ansonsten geht es weiter mit Next i.
Nachdem die zweite Schleife beendet wurde (also entweder durch Erfüllen der Bedingung >gefunden=true oder Erreichen des Schleifenendes >gefunden=false).
Danach wird abgefragt, ob etwas gefunden wurde, wenn ja muss "gefunden" wieder auf false gesetzt werden, da ansonsten beim nächsten Durchlauf "gefunden" true zurückgeben würde, auch wenn nichts gefunden wurde.
Du könntest auch "gefunden" weglassen und "if i=ubound(W1)+1 then..." schreiben. Aber schneller oder einfacher ist das eigentlich auch nicht.
Du hast es so ähnlich gemacht. Allerdings hast du abgefragt, ob i nach dem Durchlaufen der zweiten Schleife dem Schleifenende entspricht, was nicht ganz richtig ist. Führt zwar in 90% der Fälle zum richtigen Ergebnis, aber nicht wenn die For Schleife erst beim letzten Durchlauf verlassen wird. Daher musst du meines Erachtens dann fragen, ob i=Schleifenende+1 ist.
|