Gefunden, aber trotzdem ignorieren
10.11.2020 15:47:36
Patrick
ich habe irgendwo einen Denkfehler und komme nicht drauf, wo ich den Fehler mache. Könnt ihr mir helfen?
Was soll passieren?
Ich habe ein bestimmtes Suchwort , dass ich aus einer Liste von Suchworten entnehme.
Dann lade ich in tags die Keywords aus der Tabelle 3 und schaue, ob darin mein Suchwort enthalten ist.
Falls ja, dann schreibe ein paar Daten in Tabelle4,
falls nein, dann wechsle in Tabelle3 in die nächste Zeile, lade wieder die Keywords in tags und schaue nach, ob mein Suchwort enthalten ist, falls ja, dann ... usw.
Sobald ich das Ende der Tabelle3 erreicht habe, dann nimm das nächste Suchwort aus der Tabelle 1 und beginne alles von vorne.
Funktioniert bis hierhin super!
Jetzt kommts:
Da mir die Ergebnisse in Tabelle 4 aber noch zu grob waren, dachte ich mir, ich verfeinere diese, indem ich ExklusiveSuchworte in Tabelle 1 festlegen kann. Wenn er also eines der ExklusiveSuchworte in den tags findet, dann wirf die ganzen Ergebnisse doch nicht in der Tabelle4 aus.
Mein Gedankengang von grob zu fein:
Sobald er also eines der Suchworte in den tags gefunden hat, setzt er bolauswerten auf true. Wenn es true bleibt, dann wirf meine Ergebniszeile, wie gehabt, in der Tabelle 4 aus.
Vorher prüfe ich aber, ob eines meiner ExklusiveSuchworte in den tags enthalten ist. ist eines der ExklusiveSuchworte in den tags, dann setze bolAuswerten auf false,
und die Zähler der beiden Schleifen i und i2 auf die Höchstwerte, weil hier muss ich nicht mehr weitersuchen. Dieses Ergebnis will ich nicht.
Und weil ich es nicht will, steuert mir bolAuswerten (false) jetzt, dass ich keine Ergebniszeile in Tabelle 4 schreibe (und ich eine weitere Suche auch nciht mehr machen muss (tagstitle).
Springe also hoch zu z-Schleife und mache den ganzen Prozess in Zeile 2 der Tabelle 3 von vorne.
Hier der Code (so far):
For z = 1 To letzteZeileTab3Jobboards
If Tabelle3.Cells(z, 6).Text = Berufsgruppe Then
tags = Split(Tabelle3.Cells(z, 5), ", ") ' lade die Keywords in tags
tagsTitle = Split(Tabelle3.Cells(z, 2), " ") ' lade die Worte aus dem Stellentitel _
_
in tagsTitle
' Suchworte in Keyword-Spalte suchen
For i = 0 To UBound(tags)
If Suchwort = UCase(Trim(tags(i))) Then
bolAuswerten = True
Do While Tabelle1.Cells(ZeileExklusiveSuchworte, 5) ""
ExklusiveSuchworte = UCase(Tabelle1.Cells(ZeileExklusiveSuchworte, 5). _
_
Value)
ZeileExklusiveSuchworte = ZeileExklusiveSuchworte + 1
For i2 = 0 To UBound(tags)
If ExklusiveSuchworte = UCase(Trim(tags(i2))) Then
bolAuswerten = False
i2 = UBound(tags)
i = UBound(tags)
End If
Next i2
Loop
If bolAuswerten Then
Tabelle4.Cells(z2, 1) = Tabelle3.Cells(z, 12) ' group-id in Spalte A
Tabelle4.Cells(z2, 2) = Tabelle3.Cells(z, 9) ' Start-Date in Spalte B
z2 = z2 + 1
End If
End If
Next i
' Suchworte in Stellentitel suchen
' Aber nur noch machen, wenn nicht sowie schon Auschlußsuchwort entdeckt
If bolAuswerten Then
For i = 0 To UBound(tagsTitle)
If Suchwort = UCase(Trim(tagsTitle(i))) Then
Tabelle4.Cells(z2, 1) = Tabelle3.Cells(z, 12) ' group-id in Spalte A
Tabelle4.Cells(z2, 2) = Tabelle3.Cells(z, 9) ' Start-Date in Spalte B
z2 = z2 + 1
End If
Next i
End If
End If
Next z
Was tut es aber:
Eigentlich scheint alles zu stimmen, wenn ich die Variablen schritt für schritt überprüfe:
Er findet das Suchwort, setzt bolAuswerten auf true,
er findet das ExklusiveSuchwort und setzt bolAusweten auf false, beendet die Schleifen, schriebt nix...
und am Ende:
ist die betreffende Ergebnis-Zeile doch in der Tabelle4 geschrieben.
Aus irgendeinem Grund "findet" er sie trotzdem.
Was mache ich falsch?
'verzweifelter'
Patrick