我为 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
编辑
我试过使用宏记录器,得到了相同的代码。 此外,该命令在录制期间对选择起作用,但在执行宏时对整个文档起作用。
这是一个错误吗?有什么解决方法吗?
最佳答案
问题可能是 .Wrap = wdFindAsk
,因为这会在搜索完 Selection
后提示您搜索是否应该扩展到整个文档。但是如果你运行这个宏,提示不会出现并且默认为 Search the whole Document
,所以你的整个 Document 都被检查了。
.Wrap = wdFindStop
应禁用提示,并在到达选择
结束后停止替换。
关于vba - Selection.Find.Execute 在 Word 2013 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45821656/