我已经选择了文档的一部分,现在我想替换该选定部分中的所有手动分页符和分节符(后者包括所有类型,例如偶数下一页、奇数下一页、连续下一页、列)。
我尝试在使用单词高级查找/替换搜索 [^m^b] 时录制宏,但没有成功(在用于测试的、用断点填充的文档中没有找到任何内容)。
所以我尝试分别处理分节符和分页符,首先选择,然后替换一种类型,再次选择,替换另一种类型。这样,第二次搜索(分节符)不知何故也触及了选择之前的文档的一部分。
但是,我该如何搜索特殊分节符呢?高级查找 UI 没有专门搜索它们的选项,但常规分节符搜索无法找到所有内容。另外,我认为有一种方法可以一次性完成所有操作。
更新,我现在正在单独尝试分节符。下面的宏确实替换了所有分节符,但做了一些奇怪和错误的事情。我有四个分节符,在选择之前都是连续类型,然后是一个下一页类型的分节符和一个偶数页类型的分节符。运行替换分节符的宏后,选择之前的最后一个分节符从连续类型更改为偶数页类型。
我的宏:
Sub break2()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = ""
.Forward = True
.Wrap = False
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
答案1
这段简单的代码删除了所有换行符。只剩下一个并不常见的换行符 - “文本换行符”。如果您也想删除它,只需添加"^l"
参数Array()
即可。但请记住,它"^l"
也会匹配“换行符”。无论如何,您没有提到文本换行符,而且它并不常见,所以我认为这不是问题。希望这对某人有帮助 ;)
Sub Delete_all_breaks_from_selection()
Dim arr() As Variant
Dim i As Byte
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
'"^b" - Selection Breaks, "^m" - Page Break, "^n" - Column Break
arr = Array("^b", "^m", "^n")
For i = LBound(arr) To UBound(arr)
With Selection.Find
.Text = arr(i)
.Replacement.Text = ""
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub