MS Word - nur Zahlen mit 3 Ziffern finden

MS Word - nur Zahlen mit 3 Ziffern finden

Ich muss alle Nummern mit nur 3 Ziffern finden und löschen – und Nummern mit 1, 2 und 4 oder mehr Ziffern ignorieren (falls es hilft: Auf die dritte Ziffer folgt Text ohne Leerzeichen dazwischen, z. B. „457text“). Ich bin für jede Hilfe SEHR dankbar!!!

Antwort1

Sie können dies in Word (also nicht per Skript) mit einem Platzhalter für Suchen und Ersetzen tun. Auf 3 Ziffern folgt immer ein Buchstabe:

Bildbeschreibung hier eingeben

oder wenn Sie ein beliebiges Zeichen zulassen möchten (z. B. Satzzeichen), können Sie das vierte Zeichen, nämlich eine Ziffer, mit einer Variation ausschließen:

Bildbeschreibung hier eingeben

In beiden Beispielen zeigen die runden Klammern im Abschnitt „Suchen nach“ Teile an – wir möchten die 3 Ziffern am Anfang eines „Worts“ als ersten Teil finden und nur diejenigen, bei denen das nächste Zeichen ein Buchstabe ist, also den zweiten Teil, den wir behalten möchten.

Das Ersetzen durch \2 bedeutet, dass wir unseren gefundenen Text (z. B. 123A) nur durch den Teil „A“ „ersetzen“ (der restliche Text bleibt unverändert, da er nicht Teil des Suchergebnisses ist).

Das < bedeutet den Wortanfang, d. h. wir möchten, dass die 3 Ziffern am Wortanfang stehen, möchten jedoch nicht, dass 3 Ziffern mitten in einer längeren Sequenz aufgegriffen werden (z. B. 12345 ignorieren, indem 345 darin nicht gefunden wird).

Die eckigen Klammern sind ein Zeichenbereich, also bedeutet [0-9] jede Ziffer von 0 bis 9 und {3} eine Folge von 3 dieser Zeichen. [A-Za-z] bedeutet, dass jeder Buchstabe klein- oder großgeschrieben wird. Die alternative Option mit [!0-9] findet alles außer (! ist nicht) Ziffern von 0 bis 9.

Antwort2

Ja, das geht mit einem VBA-Skript. Um den VBA-Editor zu öffnen, drücken Sie gleichzeitig ALT + F11. Geben Sie den folgenden Code in den VBA-Editor ein

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("[0-9][0-9][0-9]")
    ActiveDocument.Range = _ 
    RegEx.Replace(ActiveDocument.Range, InputBox(""))        

End Sub

verwandte Informationen