如何从word文档中提取使用某些样式格式化的文本?

时间:2011-12-13 14:01:54

标签: vba ms-word word-vba

我有一个非常漫长而复杂的word文档(200多页),并希望提取所有使用某种样式格式化的内容,同时跳过文档的其余部分。只要您只需要找到一种样式就可以轻松实现 - 但我正在寻找可以提取各种样式的解决方案(即所有标题和所有格式为style2的文本)。

2 个答案:

答案 0 :(得分:1)

如果您可以设法将所有测试复制到另一个文档然后运行它,那么这是一个好的开始 - 这是你可以循环并删除所有不符合你想要的样式的内容。

您可以执行一些if语句来检查每个样式,但是使用所有ok样式的字符串并使用instr很不错。

Sub DeleteUnwatedFormats()

Dim para As Paragraph

Dim okStyles As String
okStyles = "Normal, Heading1, Heading2" 'list up ok styles

For Each para In ActiveDocument.Paragraphs
    If InStr(1, okStyles, para.Style) = 0 Then
        para.Range.Delete
    End If
Next

End Sub

答案 1 :(得分:0)

我尝试运行上面给出的代码,但它删除了所有内容 - 我认为在行中:

 If InStr(1, okStyles, para.Style) = 0 Then
应该交换okStyles和para.Style来给出:

 If InStr(1, para.Style, okStyles,) = 0 Then

当我这样做时,效果很好。