我为Word 2003编写了一个宏来删除不需要的“回车”并用空格替换它们。
因此,在选择了一段文字后,我运行了宏,选择中的“回车”被替换了。
但是在Word 2013下,即使我只选择了几行,也会在整个文档中进行补充。
这是我的代码:
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = " "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
修改
我尝试过使用宏录制器并且我有相同的代码。 此外,该命令在录制期间处理选择,但在执行宏时在整个文档中工作。
这是一个错误吗?有没有解决方法?
答案 0 :(得分:0)
问题可能是.Wrap = wdFindAsk
,因为这会在搜索Selection
之后启用提示,询问您是否应将搜索扩展到整个文档。但是,如果运行宏,则不会出现提示,默认为Search the whole Document
,因此会检查整个文档。
.Wrap = wdFindStop
应停用提示,并在到达Selection
结束后停止替换。
请参阅:Wrap property