是否可以从包含粗体字的Word文档中提取句子?

时间:2017-09-18 18:52:42

标签: vba ms-word

我想通过提取包含Word文档中粗体字的句子来构建术语列表。那可能吗?我知道如何用粗体搜索单词。但我不知道如何选择具有粗体字的句子。

我添加了一些代码来将找到的文本复制并粘贴到新文档中。它工作正常,但现在不是。我不知道为什么。这就是我现在所拥有的:

Sub Extract_terms()
    With Selection.Find
        .Format = True
        .Font.Bold = True
    End With
    Do While Selection.Find.Execute
        Selection.Expand wdSentence
        Selection.Font.Bold = False 'added to prevent infinite loop
        Selection.Copy
        Windows("list.docx").Activate
        Selection.PasteAndFormat (wdFormatOriginalFormatting)
        Selection.TypeParagraph
        Windows("Chapter 3.docx [Compatibility Mode]").Activate
        Selection.MoveLeft Unit:=wdCharacter, Count:=1    
    Loop
End Sub

2 个答案:

答案 0 :(得分:0)

我认为一种简单的方法是记录该搜索的宏包含所需的标准,然后将代码带到您的程序并根据需要进行修改。

例如:

if sender == createDiarySwitch {
    if sender.isOn {
        parentClass?.viewCells.append((parentClass?.diariseCell)!)
    } else {
        if let i = parentClass?.viewCells.index(where: { $0 == parentClass?.diariseCell }) {
            print("Found cell reference at index \(i)")
            parentClass?.viewCells.remove(at: i)
        }
    }
}

答案 1 :(得分:0)

您必须使用wdSentence作为Selection.Expand的单位。这是一个例子:

Sub test()
    With Selection.Find
        .Format = True
        .Font.Bold = True
    End With

    Do While Selection.Find.Execute
        Selection.Expand wdSentence
        Selection.Font.Bold = False 'added to prevent infinite loop
    Loop
End Sub

Here是您可以用于wdUnits枚举的所有可能单位的列表。