我有一个需要解决的问题。 我有一个单词doc,要在其上运行搜索并替换查询。 但我不想更改实际文本,我想放置更改后的文本 在剪贴板中,并保持实际的不变。
Sub SearchAndReplace()
' marks all bold words,italic words, underlined
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Font.Italic = True
Selection.Find.Font.Underline = wdUnderlineSingle
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = "[test]^&[/test]"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
答案 0 :(得分:0)
谨慎: 我猜有更好的方法来实现您想要的工作,因为这不是正确的编码。 (而且剪贴板最多只能包含24个项目),但是为了使您的代码有效,这是我的答案:
要复制剪贴板中的文本而不是替换文本,可以只使用.copy
方法。
如果替换行:
Selection.Find.Execute Replace:=wdReplaceAll
作者
Dim iCount As Long
Selection.Find.Execute
Selection.Copy
Do While Selection.Find.Found = True And iCount < 1000
iCount = iCount + 1
Selection.Find.Execute
Selection.Copy
Loop
它应该工作。
代码只是复制每次搜索后找到的项目。
每次Selection.Find.Execute
出现在代码中时,都会搜索该搜索的下一个目标。
一旦再也找不到搜索(或搜索太多),循环将停止。