von HKindler » 03. Dez 2020, 08:30
Hi,
HH-Joh. hat geschrieben:das sind unterschiedliche Typen string und range
richtig. Und was macht die Anweisung
firstAddress = rngFound? Richtig, sie weist der Variabeln firstAddress den Inhalt (=Wert) von rngFound zu und nicht die Zelladresse. Aber das hast du ja mittlerweile korrigiert.
HH-Joh. hat geschrieben:Wie mache ich es, dass er beim ersten anfängt?
Überlegen wir einmal: Zunächst wird der erste Treffer gesucht. Falls dieser gefunden wurde, wird die Schleife gestartet, die den nächsten Treffer sucht. Dieser wird ausgegeben und falls die Adresse ungleich der ersten Adresse ist, wird die Schleife wiederholt. Fällt dir etwas auf? Auf diese Art gibst den 2., 3., 4.,.... 1. Treffer aus.
Was kann man dagegen tun? Ganz einfach: dreh diese beiden Zeilen um:
- Code: Alles auswählen
Set rngFound = .FindNext(rngFound)
Kdno = rngFound.Offset(, -1).Value
wird zu
- Code: Alles auswählen
Kdno = rngFound.Offset(, -1).Value
Set rngFound = .FindNext(rngFound)
Hi,
[quote="HH-Joh."]das sind unterschiedliche Typen string und range[/quote]
richtig. Und was macht die Anweisung [color=#0000FF]firstAddress = rngFound[/color]? Richtig, sie weist der Variabeln firstAddress den Inhalt (=Wert) von rngFound zu und nicht die Zelladresse. Aber das hast du ja mittlerweile korrigiert.
[quote="HH-Joh."]Wie mache ich es, dass er beim ersten anfängt?[/quote]
Überlegen wir einmal: Zunächst wird der erste Treffer gesucht. Falls dieser gefunden wurde, wird die Schleife gestartet, die den nächsten Treffer sucht. Dieser wird ausgegeben und falls die Adresse ungleich der ersten Adresse ist, wird die Schleife wiederholt. Fällt dir etwas auf? Auf diese Art gibst den 2., 3., 4.,.... 1. Treffer aus.
Was kann man dagegen tun? Ganz einfach: dreh diese beiden Zeilen um:
[code] Set rngFound = .FindNext(rngFound)
Kdno = rngFound.Offset(, -1).Value[/code] wird zu [code] Kdno = rngFound.Offset(, -1).Value
Set rngFound = .FindNext(rngFound)[/code]