Kleine Frage:
Wie soll der VBA Code aussehen, wenn ich sagen will: Suche in der Zelle A1, wo ein x-belibiger Text enthalten sein kann nach dem Stueckchen Text "Test"?
Viele Gruesse,
Alexej
Private Sub CommandButton1_Click()
Dim sSuch As String
Dim iPos As Integer
sSuch = "test"
On Error Resume Next
iPos = WorksheetFunction.Find(sSuch, [a1].Value, 1)
If Err > 0 Then
MsgBox "Nicht gefunden!"
Else
MsgBox "Suchstring zuerst an Position " & iPos & " gefunden"
End If
End Sub
Um in Excel einen Teiltext mithilfe von VBA zu suchen, folge diesen Schritten:
Öffne den VBA-Editor:
ALT + F11, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Einfügen und wähle Modul.Gib den folgenden Code ein:
Private Sub CommandButton1_Click()
Dim sSuch As String
Dim iPos As Integer
sSuch = "Test" ' Der gesuchte Teiltext
On Error Resume Next
iPos = WorksheetFunction.Find(sSuch, [A1].Value, 1)
If Err > 0 Then
MsgBox "Nicht gefunden!"
Else
MsgBox "Suchstring zuerst an Position " & iPos & " gefunden"
End If
End Sub
Füge einen Button hinzu:
CommandButton1_Click zu.Testen:
Fehler: "Nicht gefunden!" wird immer angezeigt
Lösung: Stelle sicher, dass der Teiltext tatsächlich in der Zelle A1 vorhanden ist. Überprüfe auch die Schreibweise.
VBA gibt einen Laufzeitfehler aus
Lösung: Achte darauf, dass du den Code genau so eingegeben hast, wie er beschrieben wurde. Ein Tippfehler kann dazu führen, dass der Code nicht funktioniert.
Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die eingebaute Funktion FINDEN in Excel nutzen:
Gib die folgende Formel in eine Zelle ein:
=FINDEN("Test", A1)
Du kannst auch die Funktion SUCHEN verwenden, die nicht zwischen Groß- und Kleinschreibung unterscheidet:
=SUCHEN("Test", A1)
Teiltext aus Zelle übernehmen:
If Err = 0 Then
Range("B1").Value = Mid([A1].Value, iPos, Len(sSuch))
End IfSuchen in einer Liste:
Nutze InStr für eine einfachere Textsuche:
If InStr(Cells(1, 1), "Test") <> 0 Then
MsgBox "Text gefunden!"
End If
Experimentiere mit Error Handling, um den Code robuster zu gestalten.
Verwende benutzerdefinierte Funktionen, wenn du regelmäßig nach Teiltexten suchst, um den Prozess zu automatisieren.
1. Wie kann ich die Suche auf mehrere Zellen ausdehnen?
Du kannst eine Schleife verwenden, um durch die Zellen in einem Bereich zu iterieren. Zum Beispiel:
For Each cell In Range("A1:A10")
' Suche nach Teiltext in cell
Next cell
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.
3. Kann ich den gesuchten Teiltext dynamisch festlegen?
Ja, du kannst den gesuchten Text aus einer Zelle beziehen, indem du sSuch = Range("B1").Value verwendest, um den Text aus Zelle B1 zu übernehmen.