2016-06-28 107 views
0

我想將複製的文本粘貼到.Replacement.Text中。我用Selection Paste嘗試了這個,但這不起作用。Microsoft Word宏複製文本並在查找和替換過程中使用它

需要明確的是:我想要一個Microsoft Word文檔中複製文本,我要複製的文字變成了乘法fieldcodes ALT + F9 。所以我的Word文檔會一次更改所有的域代碼。

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

有VBA中沒有直接的剪貼板支持。您可以使用Windows API功能的剪貼板(一個簡單的Google搜索,你會發現一個代碼示例如何做到這一點)。但是,在投資這個選項之前:將會使用當前選定的文本作爲您的合適選項?訪問當前選擇要簡單得多(只需使用'.Replacement.Text = Selection.Text') –

回答

0

沒有必要使用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 
相關問題