Excel VBA: beliebiger Text aus Strings auslesen

Allan Sche Sar

Lt. Commander
Registriert
Jan. 2004
Beiträge
1.891
Hallo ihr,

ich grübele gerade über ein Code Schnippsel für meine VBA Programmierung.
Und zwar habe ich viele Zeilen mit Text dieser so wie diese beiden aufgebaut sein können (es gibt weitere Varianten):

A) P[0-22] [Erkennungstext] [Text]
B) [Erkennungstext] [Text]

Als Erkennungstext kommen Codeschnippsel wie:
  • Nacharb
  • R0I
  • R0A
  • etc.

in Frage. Es sind insgesamt 22 verschiedene zum aktuellen Zeitpunkt (kann weiter steigen).
Wie extrahiere ich nun auf meinem String den Erkennungstext, wenn ich nicht weiß wo dieser genau steht und nur weiß wie er heißen kann?
Wenn ich es gefunden habe, dann würde ich in einer zweiten Spalte eine Zuordnung machen. (das wäre nicht mein Codeproblem).

Ich suche also nach den verschiedenen Codeschnippseln, muss aber mehrere Suchdurchläufe starten und die Vergleichsstrings sind nie identisch.

Derzeit habe ich den Erkennungstext in einer extra Tabelle, von der ich aus suchen wollte, ob einer davon enthalten ist.

Edit:

Vergesst es, ich stand tierisch auf dem Schlauch
 
Zuletzt bearbeitet:
Wenn ich deinen Angaben richtig folgen konnte, dann suchst du also in einer Zelle einen von mehreren möglichen Erkennungstexten.

Am einfachsten schreibst du die Erkennungstexte in ein Array oder separaten tabellenbereich.
Dann durchläuftst du per schleife jeden eintrag des Arrays (oder jede Zeile des Tabellenbereichs mit den Erkennungstexten)
und fragst mit dem "Like" befehl ab ob sich der Erkennungstext in der Zeile befindet.

if Zeilentext like "*" & Erkennunstext(i) & "*" then

die Wildcards "*" stehen für 0-beliebig viele Zeichen, also wird TRUE generiert wenn sich der aktuelle Erkennunstext am Anfang, Ende oder irgendwo mitten drin im Zeilentext befindet.
 
Das ist auch ein guter Lösungsansatz. Ich glaube da werde ich mein Programm noch mal umbauen. Danke für die Idee
 
Zurück
Oben