所选文本中的 ms word 清除除最后一个结束段落标记之外的所有内容

ms word in selected text clean all but the last end-paragraph mark

我在 Word(顺便说一句,2013 版)中导入了一个很大的 .txt 文档。 在文本中,我将 "paragraphs" 格式化为多行,将 "terminated" 格式化为空行。

在 Word 中,我想对这些 "paragraphs" 进行半自动改进,删除除最后一个结束段落标记之外的所有内容。 我可以 select 手动清理段落的行组和 运行 macro/vba。

(我不想要全自动功能,除了加载的文档之外也不需要改变)

请看附图。 您可以在每个 "line" 中看到 Word 结束标记。 我想删除所有行中的标记,除了真正的最后一行,从而得到一个包含所有 selected 行的段落。

作为一个插件,我也喜欢清理多余的空格(在图中显示为....),因此将 n 个空格更改为只有一个。

我已经尝试了这里的一些技巧(如 this),但我认为我的是另一回事。

非常感谢,抱歉我的英语不好。

使用 Word 中的查找和替换功能将两个 space 替换为一个 space。继续这样做,直到它说找不到更多的事件。

要查找段落标记,请搜索不带引号的“^p”。您可以将其替换为空或替换为 space.

您可以将所有段落标记 "^p" 替换为空 "",并使用代码将 two/three " "(空格)替换为一个 " "下面给出。

您的文档可能还包含双段落标记,即“^p^p”。首先将 "^p^p" 替换为 "^p";会做的。

Dim Mr As Range
Set Mr = ActiveDocument.Content
With Mr.Find
            .Wrap = wdFindContinue
            .Text = "^p"
            .Replacement.Text = ""
            .Execute Replace:=wdReplaceAll
End With
With Mr.Find
            .Wrap = wdFindContinue
            .Text = "   "
            .Replacement.Text = " "
            .Execute Replace:=wdReplaceAll
End With
With Mr.Find
            .Wrap = wdFindContinue
            .Text = "  "
            .Replacement.Text = " "
            .Execute Replace:=wdReplaceAll
End With