如何用vba删除word文档中的段落?

有时候我们需要对Word文档进行整理,比如要删除含有数字的段落,或者删除没有字符的段落(也就是空白段落)。这时候可以用逆序循环法,也就是从最后一个段落开始循环到第一个段落,把符合条件的段落都删除。

以下vba示例是一个删除word文档中含有数字的段落:

Sub QQ1722187970()
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oP As Paragraph
    '逆序遍历
    For i = oDoc.Paragraphs.Count To 1 Step -1
        Set oP = oDoc.Paragraphs(i)
        '判断段落文本是否含数字
        If oP.Range.Text Like "*[0-9]*" Then
        Else
            oP.Range.Delete
        End If
    Next i
End Sub

以下vba示例是一个删除word文档中重复内容的段落:

Sub QQ1722187970()
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Set oDic = CreateObject("Scripting.Dictionary")
    Dim oP As Paragraph
    '逆序遍历
    For i = oDoc.Paragraphs.Count To 1 Step -1
        Set oP = oDoc.Paragraphs(i)
        sText = oP.Range.Text
        '判断是否重复,如果有重复就删除当前的段落
        If oDic.Exists(sText) Then
            oP.Range.Delete
        Else
            oDic.Add sText, ""
        End If
    Next i
End Sub

 

       

发表评论