Für eine If-Bedingung will ich wissen, ob in einer bestimmmten zelle eine bestimmte zeichenkette vorkommen. Allerdings kann davor und hinter der gesuchten zeichenkette auch noch jede menge anderes stehen. Ist das irgendwie möglich?
Gruß&Dank
Alex
Um in Excel VBA zu prüfen, ob eine Zelle einen bestimmten Text enthält, kannst Du die InStr Funktion oder die Like Anweisung verwenden. Hier sind die Schritte, um dies zu erreichen:
Öffne den VBA-Editor:
ALT + F11, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Schreibe den Code:
Sub PrüfenObZelleTextEnthält()
Dim text As String
text = "abc" ' der gesuchte Text
If InStr(1, Cells(1, 1).Value, text) > 0 Then
MsgBox text & " kommt vor!"
End If
End Sub
ALT + F8, wähle das Makro „PrüfenObZelleTextEnthält“ und klicke auf „Ausführen“.Fehler: "Typenkonflikt"
If Not IsError(Cells(1, 1).Value) Then vor der InStr-Funktion.Fehler: "VBA-Makro wird nicht gefunden"
.xlsm).Eine alternative Methode ist die Verwendung von Excel-Formeln, wenn Du keinen VBA-Code verwenden möchtest. Hier ein Beispiel:
Verwende die Formel =SUCHEN("abc";A1):
Wenn Du eine Bedingung setzen möchtest:
WENN verwenden:
=WENN(SUCHEN("abc";A1); "Text gefunden"; "Text nicht gefunden")Hier sind einige praktische Beispiele, wie Du den Text in Zellen überprüfen kannst:
Beispiel 1: Prüfen, ob eine Zelle den Buchstaben „A“ enthält:
If InStr(1, Cells(1, 1).Value, "A") > 0 Then
MsgBox "Die Zelle enthält A!"
End If
Beispiel 2: Verwenden der Like-Anweisung:
If Cells(1, 1).Value Like "*abc*" Then
MsgBox "abc ist enthalten!"
End If
Nutze die Trim-Funktion, um unnötige Leerzeichen von den Zelleninhalten zu entfernen, bevor Du die Suche durchführst:
If InStr(1, Trim(Cells(1, 1).Value), "abc") > 0 Then
MsgBox "abc kommt vor!"
End If
Setze die Option Compare Text am Anfang Deines Moduls, um die Groß- und Kleinschreibung bei der Überprüfung zu ignorieren.
1. Wie kann ich prüfen, ob eine Zelle mehrere Zeichen enthält?
Verwende die InStr Funktion in einer Schleife oder kombiniere Like mit Wildcards.
2. Was mache ich, wenn die Zelle mehrere Textteile enthält?
Du kannst die Split-Funktion verwenden, um den Inhalt der Zelle in ein Array zu zerlegen und dann jedes Element zu überprüfen.