2016-06-28 6 views
0

Ich möchte den kopierten Text in .Replacement.Text einfügen. Ich habe dies mit Auswahlpaste versucht, aber das funktioniert nicht.Microsoft Word-Makro zum Kopieren von Text und hinter es in Suchen und Ersetzen

Um klar zu sein: Ich versuche, Text in einem Microsoft Word-Dokument zu kopieren, und ich möchte, dass die kopierten Text in mehrfach fieldcodes ALT + F9 geändert. Also wird mein Word-Dokument alle Feldcodes gleichzeitig ändern.

Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend 
    Selection.Copy 
    ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 
    Selection.WholeStory 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    With Selection.Find 
     .Text = "00000" 
     .Replacement.Text ="Selection.Paste" 
     .Forward = True 
     .Wrap = wdFindAsk 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchWildcards = False 
     .MatchSoundsLike = False 
     .MatchAllWordForms = False 
    End With 
    Selection.Find.Execute Replace:=wdReplaceAll 
    ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 
    Selection.WholeStory 
    Selection.Fields.Update 
End Sub 
+0

Es gibt keine direkte Unterstützung der Zwischenablage in VBA zu verwenden. Sie können die Zwischenablage jedoch auch mit der Windows-API-Funktionalität verwenden (eine einfache Google-Suche und ein Codebeispiel, wie Sie es tun können). Bevor Sie jedoch in diese Option investieren: Würde die Arbeit mit dem aktuell ausgewählten Text eine geeignete Option für Sie sein? Es ist viel einfacher auf die aktuelle Auswahl zuzugreifen (benutzen Sie einfach '.Replacement.Text = Selection.Text') –

Antwort

0

keine Notwendigkeit Selection.WholeStory

Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend 
     Selection.Copy 
     ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 
'  Selection.WholeStory 
    searchText=selection.text 
     Selection.Find.ClearFormatting 
     Selection.Find.Replacement.ClearFormatting 
     With Selection.Find 
      .Text = "00000" 
      .Replacement.Text =searchText 
      .Forward = True 
      .Wrap = wdFindAsk 
      .Format = False 
      .MatchCase = False 
      .MatchWholeWord = False 
      .MatchWildcards = False 
      .MatchSoundsLike = False 
      .MatchAllWordForms = False 
     End With 
     Selection.Find.Execute Replace:=wdReplaceAll 
     ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 
     Selection.WholeStory 
     Selection.Fields.Update 
    End Sub 
Verwandte Themen