Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Word find and replace
10.12.2022 17:59:31 Jennifer S.
NotSolved
10.12.2022 21:02:37 Flotter Feger
NotSolved

Ansicht des Beitrags:
Von:
Jennifer S.
Datum:
10.12.2022 17:59:31
Views:
243
Rating: Antwort:
  Ja
Thema:
VBA Word find and replace

Hallo liebe Mitglieder,

ich bin VBA-Anfänger und gerade an meine Grenzen gestoßen... :D

Folgendes will ich erreichen: Als Lektorin muss ich oftmals die gleichen Fehler in diversen Texten korrigieren. Deswegen dachte ich mir, es wäre schön ein paar „Standardfehler“ in ein Makro in Word zu packen, sodass diese Fehler automatisch und auf einmal behoben werden. Soweit so gut.

Ich habe also diverse Strings angelegt, mit den zu suchenden und zu ersetzenden Wörtern. Zum Beispiel ist suchen_1 = " waren präsentiert" und ersetzen_1 = "wurden präsentiert" oder suchen_2 = "präsentiert waren" und ersetzen_2 = "präsentiert wurden" usw. Das geht von suchen_1 bis suchen_20 und ebenso bei ersetzen_. Jetzt wollte ich aber nicht 20-mal Suchen und Ersetzen in das Makro kopieren, sondern wollte das ganze mit einer for...next...-Funktion lösen.

Hier jetzt mein Problem. Wie kann ich denn für den Suchtext und den Ersetzungstext das suchen_ mit meiner Integer (i) der Schleife verknüpfen, sodass er in jedem Durchlauf auch den richtigen Suchtext nimmt? Ich dachte, ich könnte suchen_ & i kombinieren, aber das funktioniert offenbar nicht, da kommt gar nichts. Bei suchen_ + i kommt nur i als Suchtext.

Meine Lösungsversuche waren eher Bescheiden...

- ich habe es mit "suchen_" & i probiert, aber wie erwartet, ist der Suchtext dann "suchen_1" und nicht der Wert der sich hinter dem String versteckt.

- dann dachte ich, vielleicht muss ich "suchen_" und "ersetzen_" auch als String definieren, aber das war es auch nicht.

- Der Versuch, wie in dem unten aufgeführten Code, den Suchtext im Vorfeld zu verbinden und das Ganze dann hinter .text auszugeben, hat auch nicht funktioniert.

- Google und Foren haben mir auch nicht weiter geholfen (vielleicht auch, weil ich gar nicht genau weiß, wonach ich suche).

Ich hoffe, dass das einigermaßen verständlich erklärt war und mir hier jemand weiterhelfen kann. Es ist sicher nur eine kleine Sache, aber ich weiß nicht, was ich tun muss. :D

Vielen Dank und liebe Grüße

Jennifer

Dim i As Integer
For i = 1 To 30
 
 Suchtext = suchen_ & i
 Ersetzung = ersetzen_ & i
 
 
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = Suchtext
            .Replacement.Text = Ersetzung
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    
 Next i

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Word find and replace
10.12.2022 17:59:31 Jennifer S.
NotSolved
10.12.2022 21:02:37 Flotter Feger
NotSolved