wie müsste der Befehl aussehen wenn man einen Zellinhalt mit einem Teiltext in einer Zelle vergleichen möchte?
Bsp.:
Zellinhalt: MD xxx 234
if cells(1,1)=instr("xxx", "") then
Vielen Dank für Eure HilfeLG, Peter
if cells(1,1)=instr("xxx", "") then
Vielen Dank für Eure HilfeIf InStr(Cells(1,1).Value, "xxx") > 0 Then
Sub test()
If InStr(Cells(1, 1), "xxx") > 0 Then MsgBox "gefunden" Else MsgBox "nicht gefunden"
End Sub
Falls Du sehr viele Zellen nach sehr wenigen Treffern durchsuchen willst, kannst Du auch .find nehmen: zeichne einfach mal Excels Suchfunktion mit dem Makrorekorder auf.Um einen Zellinhalt in Excel mit einem String zu vergleichen, kannst Du die InStr-Funktion nutzen. Diese Funktion gibt die Position eines Teilstrings innerhalb eines Strings zurück. Hier ist ein einfaches Beispiel, wie Du dies in VBA umsetzen kannst:
Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").
Kopiere den folgenden Code in das Modul:
Sub test()
If InStr(Cells(1, 1).Value, "xxx") > 0 Then
MsgBox "gefunden"
Else
MsgBox "nicht gefunden"
End If
End Sub
Schließe den VBA-Editor und führe das Makro aus, um den Vergleich durchzuführen.
Fehler: Der Vergleich liefert unerwartete Ergebnisse.
Cells(1, 1).Value anstelle von Cells(1, 1).Fehler: Das Makro wird nicht ausgeführt.
Eine alternative Methode zum Vergleich von Zelleninhalten ist die Verwendung des Like-Operators. Dies funktioniert gut, wenn Du nach Mustern suchen möchtest. Hier ein Beispiel:
If Cells(1, 1).Value Like "*xxx*" Then
MsgBox "gefunden"
End If
Dieser Befehl prüft, ob "xxx" irgendwo im Zellinhalt vorkommt.
Teilstring überprüfen: Um zu prüfen, ob eine Zelle den Text "Test" enthält:
If InStr(Cells(2, 1).Value, "Test") > 0 Then
MsgBox "Text gefunden!"
End If
Zellinhalt vergleichen: Um den Inhalt von zwei Zellen zu vergleichen:
If Cells(1, 1).Value = Cells(2, 1).Value Then
MsgBox "Die Inhalte sind gleich."
Else
MsgBox "Die Inhalte sind unterschiedlich."
End If
VBA-Funktionen: Nutze Trim und LCase/UCase, um sicherzustellen, dass Vergleiche nicht von Leerzeichen oder Groß-/Kleinschreibung beeinflusst werden.
If LCase(Trim(Cells(1, 1).Value)) = LCase(Trim("xxx")) Then
MsgBox "Inhalt stimmt überein."
End If
Leistungsoptimierung: Wenn Du viele Zellen vergleichen möchtest, erwäge die Verwendung von .Find, um die Suche zu beschleunigen.
1. Wie kann ich den Vergleich mit mehreren Zellen durchführen?
Du kannst eine Schleife verwenden, um durch die Zellen zu iterieren und den Vergleich durchzuführen.
2. Was kann ich tun, wenn ich nach ähnlichen Texten suchen möchte?
Verwende die Like-Operator oder implementiere eine Fuzzy-Logik in VBA, um Ähnlichkeiten zu bewerten.