Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: String mit Sonderzeichen in Strin suchen (VBA)

String mit Sonderzeichen in Strin suchen (VBA)
MikeS
Hallo,
ich möchte einen großen String per VBA mit Zeilenumbrüchen versehen und ausgeben. Der Zeilenumbruch soll immer vor einem bestimmten Muster erstellt werden. Datum und Uhrzeit sind variabel!
Ich erhalte immer 0 als Ergebnis :-(
Private Sub Suche_Text()
Dim lStart As Long
Dim sText  As String
Dim sMaske As String
sText = "Hallo das ist ein Test * 02.06.2010 10:15:16"
' gesuchter String: "* 02.06.2010 10:15:16"
sMaske = "[*^]##[.]##[.]####[^]##[:]##[:]##"
lStart = InStr(1, sText, sMaske, vbTextCompare)
Debug.Print lStart
End Sub
Vielen Dank, Mike
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: String mit Sonderzeichen in Strin suchen (VBA)
02.06.2010 15:21:34
Ramses
Hallo
warum nicht einfach so
Private Sub Suche_Text()
Dim lStart As Long
Dim sText  As String
Dim sMaske As String
sText = "Hallo das ist ein Test * 02.06.2010 10:15:16"
sMaske = "*"
lStart = InStr(1, sText, sMaske, vbTextCompare)
Debug.Print lStart
End Sub
Die Zahlen sind doch sowieso egal,... oder?
Gruss Rainer
Anzeige
sMaske in der Art musst du mittels Operator...
02.06.2010 16:23:41
Luc:-?
Like vgl, Mike,
nicht mit Instr suchen, denn dabei kann ja nur 0 rauskommen, weil alle Zeichen in dieser Reihenfolge so vorhanden sein müssen (also der ganze Ausdruck). Maske is' nich'!
Allerdings ist mir jetzt nicht ganz ggw, wofür ^ stehen soll! In [] dürfte das Zeichen direkt gesucht/vgl wdn — und das sehe ich in deinem Text nicht!
Gruß Luc :-?
Anzeige
Vbscript.Regexp (Reguläre Ausdrücke)
02.06.2010 20:01:40
Tino
Hallo,
vielleicht geht es so.
Private Sub Suche_Text()
Dim strPattern$, sText$
Dim Regex As Object, objMatch As Object
Dim nCount&

    Set Regex = CreateObject("Vbscript.Regexp")
    sText = "Hallo das ist ein Test *02.06.2010 10:15:16"
   
    'gesuchter String: "* 02.06.2010 10:15:16" 
    strPattern = "[*] {0,}\d{2}[.]\d{2}[.]\d{4}[^]\d{2}[:]\d{2}[:]\d{2}"

    With Regex
      .MultiLine = True
      .Pattern = strPattern
      .Global = True
      Set objMatch = .Execute(sText)
      
      If Not objMatch Is Nothing Then
            For nCount = objMatch.Count - 1 To 0 Step -1
                Debug.Print "Position:" & objMatch(nCount).FirstIndex, "Text:" & objMatch(nCount).Value
            Next nCount
      End If
    End With

End Sub
Gruß Tino
Anzeige
AW: Vbscript.Regexp (Reguläre Ausdrücke)
07.06.2010 09:44:00
MikeS
Hi Tino,
wo kann ich Informationen zur Codierung erhalten?
strPattern = "[*] {0,}\d{2}[.]\d{2}[.]\d{4}[^]\d{2}[:]\d{2}[:]\d{2}"
Vielen Dank!!!
Ciao, Mike
AW: Google doch mal
07.06.2010 10:57:54
MikeS
Hi Tino,
vielen Dank! lese ich mir mal durch...
Ciao, Mike
P.S. Natürlich auch den anderen Antwortern ein Dankeschön :-)
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

String mit Sonderzeichen in VBA suchen


Schritt-für-Schritt-Anleitung

Um in einem String mit Sonderzeichen zu suchen und Zeilenumbrüche per VBA einzufügen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Suche_Text()
        Dim lStart As Long
        Dim sText As String
        Dim sMaske As String
        sText = "Hallo das ist ein Test * 02.06.2010 10:15:16"
        sMaske = "[*] {0,}\d{2}[.]\d{2}[.]\d{4}[^]\d{2}[:]\d{2}[:]\d{2}"
    
        Dim Regex As Object
        Set Regex = CreateObject("Vbscript.Regexp")
    
        With Regex
            .Pattern = sMaske
            .Global = True
            .MultiLine = True
            If .Test(sText) Then
                Debug.Print "Muster gefunden!"
            Else
                Debug.Print "Muster nicht gefunden."
            End If
        End With
    End Sub
  4. Führe das Skript aus: Klicke auf die Schaltfläche "Ausführen" oder drücke F5.


Häufige Fehler und Lösungen

  • Problem: Das Skript gibt immer 0 zurück.
    Lösung: Stelle sicher, dass das Muster (sMaske) korrekt definiert ist. Verwende reguläre Ausdrücke, um die Sonderzeichen und das gewünschte Datumsformat richtig zu erfassen.

  • Problem: Der Regex-Objekt wird nicht erkannt.
    Lösung: Überprüfe, ob Du die richtige Referenz in den VBA-Optionen hinzugefügt hast. Gehe zu "Extras" > "Verweise" und stelle sicher, dass "Microsoft VBScript Regular Expressions x.x" aktiviert ist.


Alternative Methoden

Eine alternative Methode zur Suche in Strings ist die Verwendung der InStr-Funktion, wie von einigen Benutzern im Forum vorgeschlagen. Diese ist jedoch weniger flexibel, wenn es um Muster mit Sonderzeichen geht. Hier ein einfaches Beispiel:

Private Sub Suche_Text()
    Dim lStart As Long
    Dim sText As String
    Dim sMaske As String
    sText = "Hallo das ist ein Test * 02.06.2010 10:15:16"
    sMaske = "*"
    lStart = InStr(1, sText, sMaske, vbTextCompare)
    Debug.Print lStart
End Sub

Diese Methode ist nützlich, wenn Du nur nach einfachen Zeichenfolgen suchst.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, das Suchen in Strings mit Sonderzeichen zu meistern:

  1. Beispiel für Datumssuche:

    Dim sMaske As String
    sMaske = "\d{2}[.]\d{2}[.]\d{4}"
  2. Beispiel für Zeitformat:

    Dim sMaske As String
    sMaske = "\d{2}[:]\d{2}[:]\d{2}"

Mit diesen Mustern kannst Du spezifische Teile Deines Strings erfassen und die VBA RegExp-Funktionalitäten nutzen.


Tipps für Profis

  • Reguläre Ausdrücke verstehen: Wenn Du mit regulären Ausdrücken arbeitest, ist es hilfreich, die Grundlagen zu verstehen, wie z.B. Platzhalter und Quantifizierer.
  • Test-Tools nutzen: Verwende Online-Tools, um Deine regulären Ausdrücke zu testen, bevor Du sie in Dein VBA-Skript einfügst.
  • Debugging: Nutze Debug.Print, um Zwischenergebnisse zu prüfen und Fehler zu identifizieren. Dies ist besonders nützlich, wenn Du mit komplexen Mustern arbeitest.

FAQ: Häufige Fragen

1. Was sind reguläre Ausdrücke?
Reguläre Ausdrücke sind Muster, die verwendet werden, um Text zu durchsuchen und zu manipulieren. Sie sind besonders nützlich, wenn Du nach speziellen Zeichenfolgen oder Formaten suchst.

2. Wie kann ich Sonderzeichen in Excel suchen?
Du kannst die VBA RegExp-Funktionalität nutzen, um nach Sonderzeichen in Strings zu suchen. Achte darauf, die richtigen Escape-Zeichen zu verwenden, um diese korrekt zu erfassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige