Wie kann die Mehrfachersetzung mit VBA in Word beschleunigt werden?

Ich schreibe ein Word-Makro, das ungefähr 1000 Wortpaare aus einer Excel-Datei liest und eine Word-Datei entsprechend ersetzt. Ganz am Anfang habe ich den folgenden Code für den Ersatz verwendet:

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = SrcText
        .Replacement.Text = DestText
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

Es hat funktioniert, schien aber bei großen Word-Dateien etwas langsam zu sein. Dann habe ich versucht, zuerst den gesamten Inhalt in eine Zeichenfolgenvariable zu lesen, dort zu suchen und dann die Word-Datei zu ändern, wenn ein Ersatzziel gefunden wurde (obwohl ich nicht sicher bin, ob dies schneller sein kann).

Wann bin ich auf @ gestoßa etwas seltsame Inkonsistenz. Wenn Sie beispielsweise eine Word-Datei mit nur einer einzelligen Tabelle in der ersten Zeile erstellen:

dann erhalten Sie im VBA-Editor mit dem folgenden Code 2.

    Debug.Print Len(ActiveDocument.Characters(2))

Ich weiß nicht, ob es andere Inkonsistenzen dieser Art gibt und bin dort hängen geblieben.

ibt es eine Problemumgehung oder gibt es eine andere Möglichkeit, den Austausch zu beschleunige

Antworten auf die Frage(1)

Ihre Antwort auf die Frage