Thema Datum  Von Nutzer Rating
Antwort
Rot Word - VBA - alle Wörter esetzen
20.05.2022 22:09:55 Kerstin
NotSolved
21.05.2022 11:36:27 Gast46182
NotSolved
21.05.2022 11:53:22 Gast7777
NotSolved
24.05.2022 19:15:18 Gast89076
NotSolved
24.05.2022 20:11:35 Gast7777
NotSolved
24.05.2022 19:56:05 Gast7777
NotSolved

Ansicht des Beitrags:
Von:
Kerstin
Datum:
20.05.2022 22:09:55
Views:
344
Rating: Antwort:
  Ja
Thema:
Word - VBA - alle Wörter esetzen

Hallo,

ich suche einen einfacheren weg als meinen, um eine bestimmte Zeichenkette mit einer anderen zu ersetzen. Und zwar im ganzen Dokument.

 

Mein Makro ruft mit den folgenden Zeilen die Public Sub(Repeat) auf:

 

Dim lCount As Integer

Number_of_Changes = 1

lsNewString(1) = "<#" & bmBookmark.Name & "#>"
lsOldString(1) = "%" & bmBookmark.Name & "%"

----------------------------------------------------------------------

For lCount = 1 To Number_of_Changes
        For Each MyStoryRange In ActiveDocument.StoryRanges
            Call Repeat(MyStoryRange, lsOldString(lCount), lsNewString(lCount))
        Next MyStoryRange
        Next lCount

-----------------------------------------------------------------------

 

 

Public Sub Repeat(ReplaceIn As Range, ByVal FindText As String, ByVal ReplacementText As String)
 
 Dim bResult As Boolean
 Dim IsNewString As String
 Dim IsOldString As String
  Dim MyAR() As String
    Dim i As Long

    i = 0
 
 Selection.HomeKey Unit:=wdStory
 Selection.Find.ClearFormatting
 'Selection.Find.Font.Color = -738132071
   With Selection.Find
       .Text = FindText
        .Replacement.Text = ""
        .Forward = True
       .Wrap = wdFindContinue
       .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    'If Selection.Find.Found = True Then
     Do While Selection.Find.Execute = True
            With Selection
                 .Font.Size = 8
                 .Font.ColorIndex = wdViolet
                 .Font.Bold = True
                 .Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
                  "QUOTE" & " " & ReplacementText, PreserveFormatting:=True
            End With
      
       ReDim Preserve MyAR(i)
       MyAR(i) = Selection
       i = i + 1
    Loop


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 Word - VBA - alle Wörter esetzen
20.05.2022 22:09:55 Kerstin
NotSolved
21.05.2022 11:36:27 Gast46182
NotSolved
21.05.2022 11:53:22 Gast7777
NotSolved
24.05.2022 19:15:18 Gast89076
NotSolved
24.05.2022 20:11:35 Gast7777
NotSolved
24.05.2022 19:56:05 Gast7777
NotSolved