Suchen und Ersetzen

Moderator: ModerationP

Suchen und Ersetzen

Beitragvon ruhls » 03. Jan 2020, 21:37

Hallo,

habe ein kleines Problem. Ich möchte mehrfach zwei Leerzeichen und einen Tabulator (hintereinander stehend) in einem Dokument entfernen. Der Text wird aus einer anderen Anwendung in Winword eingefügt. Mein bisheriger Code funktioniert nicht (auch die auskommentierten Zeilen probierte ich bereits aus):

Code: Alles auswählen
Sub EntferneZweiLeerzeichenUndTabulator()
'Zwei Leerzeichen und einen Tabulator durch Suchen und Ersetzen mehrfach entfernen
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
'        .Text = "^32{2;3}\^t"
'        .Replacement.Text = "^32"
'        .Text = Chr(32) & Chr(32) & vbTab
'        .Replacement.Text = Chr(32)
        .Text = "  " & vbTab
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchWildcards = False
    End With
    Selection.Find.Execute
    With Selection
        If .Find.Forward = True Then
            .Collapse Direction:=wdCollapseStart
        Else
            .Collapse Direction:=wdCollapseEnd
        End If
        .Find.Execute Replace:=wdReplaceOne
        If .Find.Forward = True Then
            .Collapse Direction:=wdCollapseEnd
        Else
            .Collapse Direction:=wdCollapseStart
        End If
        .Find.Execute
    End With
End Sub


Muss gleich noch erwähnen, dass ich mit den Platzhaltern bisher keine Erfahrung habe.
Was mache ich nicht richtig? Kann mir jemand helfen?

ruhls
ruhls
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 84
Registriert: 14. Okt 2012, 14:49

Re: Suchen und Ersetzen

Beitragvon theoS » 03. Jan 2020, 21:56

Platzhalter werden im allgemeinen überbewertet.
Dazu brauchst du kein Makro, nur eine ganz einfache Suche.
Der Suchstring ist
Code: Alles auswählen
"  ^t"
also LeerzeichenLeerzeichen^t.
Ersetzen: Alle ersetzen.
Blöd ist, dass Word im Erweiterten Modus das Leerzeichen als zu suchendes mit ^w anbietet. Das ist leider verkehrt. Ohne Platzhalter ist das einfach einzugeben als Leerzeichen.
Aufgezeichnet:
Code: Alles auswählen
Sub Makro1()
'
' Makro1 Makro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "  ^t"
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5196
Registriert: 19. Apr 2008, 00:14

Re: Suchen und Ersetzen

Beitragvon ruhls » 03. Jan 2020, 22:17

Hallo theoS,

erst einmal herzlichen Dank für deine Antwort. Habe deinen Code soeben ausprobiert, aber es tut sich gar nichts in meinem Winword 2010.
Probierte es auch nochmals direkt über die Winword-Suchen-Ersetzen-Maske, jedoch keinerlei Reaktion.
Meistens sind diese zwei Leerzeichen und anschließend der Tabulator direkt am Zeilenanfang, manchmal
dann aber auch wieder mitten im Text, den ich zig-Mal täglich manuell herausnehmen muss, was mich persönlich nervt.

Woran könnte das Nichtfunktionieren deines Codes liegen?

ruhls
ruhls
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 84
Registriert: 14. Okt 2012, 14:49

Re: Suchen und Ersetzen

Beitragvon theoS » 03. Jan 2020, 22:43

das war getestet, also kann es durchaus sein, dass dein Leerzeichen andere sind als meine.
Lad mal eine Sequenz hoch, wo der Code nicht funktioniert. (als docx)
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5196
Registriert: 19. Apr 2008, 00:14

Re: Suchen und Ersetzen

Beitragvon ruhls » 03. Jan 2020, 22:51

Hallo Theo,

anbei Datei. Danke für deine Bemühungen im Voraus!

ruhls
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
ruhls
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 84
Registriert: 14. Okt 2012, 14:49

Re: Suchen und Ersetzen

Beitragvon theoS » 03. Jan 2020, 22:58

GEiler Döner!
Das ist mal was, da wäre ich jetzt auch nicht so schnell drauf gekommen, wenn es nicht die Funktion ASCW() gäb. :twisted:
Du hast da ein anderes Zeichen drin, das dir nicht auffällt, weil du wahrscheinlich gewöhnt bist, die unsichtbaren Zeichen eingeblendet zu haben.
Falls du mal wieder so ein Problem hast, such mit der Funktion die richtigen Zeichen raus.
Code: Alles auswählen
Sub testZeichen()
Dim dd1 As Document: Set dd1 = ActiveDocument
Dim sR As Range: Set sR = Selection.Range
Dim zI As Range
 For Each zI In sR.Characters
  Debug.Print AscW(zI)
 Next zI
End Sub


Der Code sollte laufen:
(tats bei mir)
Code: Alles auswählen
    Sub Makro1()
    '
    ' Makro1 Makro
    '
    '
    Dim strSuch As String
    strSuch = ChrW(32) & ChrW(183) & ChrW(9)
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = strSuch
            .Replacement.Text = " "
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub

theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5196
Registriert: 19. Apr 2008, 00:14

Re: Suchen und Ersetzen

Beitragvon theoS » 03. Jan 2020, 23:01

Nachtrag: Ich persönlich bevorzuge hier ja immer noch die manuelle Methode: Markieren des Suchstrings im Dokument, kopieren, dann im Dialogfeld einfach einfügen. Word weiß schon, welche Zeichen es hat. :razz:
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5196
Registriert: 19. Apr 2008, 00:14

Re: Suchen und Ersetzen

Beitragvon ruhls » 03. Jan 2020, 23:08

Hallo TheoS,

dein Makro "TestZeichen" funktioniert bei mir auch nicht, aber das zweite von dir erstellte Makro klappt prima.
Ich war schon richtig verzweifelt.
Kläre mich bitte auf: Was ist das für ein Zeichen, welches ich nicht sehe?

Und meinen herzlichsten Dank!!! So komme ich auf Arbeit besser klar.

ruhls
ruhls
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 84
Registriert: 14. Okt 2012, 14:49

Re: Suchen und Ersetzen

Beitragvon theoS » 03. Jan 2020, 23:50

Das testzeichen arbeitet nur im direktbereich. Es zeigt dir die “Nummer“ der Zeichen in der Auswahl an. Das 283 ist der Punkt, der genau so aussieht wie das Leerzeichen.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5196
Registriert: 19. Apr 2008, 00:14

Re: Suchen und Ersetzen

Beitragvon ruhls » 04. Jan 2020, 17:43

Hallo TheoS,

nochmals herzlichsten Dank für diese Information!

ruhls
ruhls
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 84
Registriert: 14. Okt 2012, 14:49


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast