用于word的vba宏:删除子节

时间:2014-12-08 16:44:43

标签: vba ms-word word-vba

我在word文档中有子部分,我想根据自定义用户界面中的用户输入删除。

例如:我想删除第3节

下的第3.1.1节

我使用了以下代码,但它删除了整个部分,但我只想删除一个特定的子部分:

ActiveDocument.Sections(x).Range.Delete

这里我不能给x = 3.1.1,它只接受像3那样的整数值并删除整个部分。

1 个答案:

答案 0 :(得分:0)

Word没有嵌套部分,因此您可能需要遍历各个部分,直到找到符合您需求的部分。所以,让我们说你有一个Word文档,如下所示:

Title___[continuous section break]
Stuff
Section 1___[continuous section break]
Stuff
Section 1.1___[continuous section break]
Stuff

您可以遍历各个部分并检查每个部分的第一段:

For each objSect in ActiveDocument.sections
    if trim(replace(objSect.Range.Paragraphs.First.range.Text, chr(13), "")) like "* 1.1" then objSect.range.delete
Next objSect

当然,这意味着如果您要删除第1部分,您需要将其与任何子部分一起删除,一次一个。

如果您真正想要的是导航窗格提供的内容,我不知道VBA是否支持这些内容。似乎没有任何方法可以模仿导航窗格删除选项。