.find innerhalb von .find
11.11.2020 18:34:13
.find
ich stolpere nun schon den ganzen Tag über einige paralel laufende .find bzw. findnext Anweisungen.
Über "Find" suche ich aufeinem Arbeitsblatt einen bestimmten Wert (SERCH1) der in einer Spalte mehrfach auftaucht. Habe ich diesen gefunden nehme ich den aus der gleichen Zeile aber einer anderen Spalte einen wieteren Wert (RESULT1), nach dem ich wiederum drei weitere Arbeitsblätter durchsuche.
Über "Select Case" führe ich nun verschiedene Operationen aus je nachdem auf welchen Arbeitsblättern RESULT1 gefunden wurde.
Ist das erledigt suche ich weiter anch "SEARCH1" und das ganze soll von vorne losgehen.
So sieht das ganze in VBA aus:
With Worksheets("SHEET4").Columns("H:H")
Set FindRNG = .Find(SERCH1(y))
If Not FindRNG Is Nothing Then
firstAddress = FindRNG.Address
Do
RESULT1 = Sheets("MSL List").Cells(FindRNG.Row, 6).Value
Check1 = Not Worksheets("SHEET1").Columns("D:D").Find(RESULT1, LookIn:=xlValues) Is _
Nothing
Check2 = Not Worksheets("SHEET2").Columns("A:A").Find(RESULT1, LookIn:=xlValues) Is _
Nothing
Check3 = Not Worksheets("SHEET3").Columns("F:F").Find(RESULT1, LookIn:=xlValues) Is _
Nothing
Select Case True
Case Check1 = True And Check2 = False And Check3 = True
' do some stuff
Case Check1 = True And Check2 = False And Check3 = False
' do different stuff
Case Check1 = True And Check2 = True And Check3 = False
' do magical stuff
End Select
Set FindRNG = .FindNext(FindRNG)
Loop While Not FindRNG Is Nothing And FindGNG.Address firstAddress
End If
End With
Solange ich die drei zeilen "Check1, check2 & check3" weglasse funktioniert es auch. Sobald ich die aber einfüge zerschiessen die dortigen "find anweisungen anscheinend irgendwie die "findRNG" anweisung und der ".FindNext resultiert in "nothing".Was kann ich machen um das zu umgehen bzw. zu vermeiden?
Besten Dank für Ratschläge.
Ralf