Word VBA技术:比较相邻两段,删除相同的段落

2023-02-24 21:03:04 浏览数 (2)

标签:Word VBA

如果要删除文档中存在内容重复的段落,怎么操作?当然,很简单,找到后直接选择重复的段落,按Delete键删除即可。

然而,这里存在两个问题:一是要找到重复内容的段落,二是如果文档很长重复段落比较多,这样不仅浪费时间而且容易遗漏。如果使用VBA编写程序,让计算机来帮你实现,既快又不会出错。

下面的程序比较前后两个段落,如果这两个段落内容相同,则删除第二个段落。

程序代码:

代码语言:javascript复制
Sub DeleteDuplicateParagraph()
 Dim lngMovedAmount As Long
 Dim rngRange As Range

 '从第一段开始,将区域向下扩展到第二段
 Set rngRange = ActiveDocument.Paragraphs(1).Range
 lngMovedAmount = rngRange.MoveEnd(Unit:=wdParagraph, Count:=1)

 '遍历直到没有段落要检查
 Do While lngMovedAmount > 0
    '如果两个段落相同, 则删除第二个 
    '然后添加其后的段落以便检查
    If rngRange.Paragraphs(1).Range.Text = _
         rngRange.Paragraphs(2).Range.Text Then
        rngRange.Paragraphs(2).Range.Delete
        lngMovedAmount = rngRange.MoveEnd(Unit:=wdParagraph, Count:=1)
    Else
        '如果两个段落不相同, 则将之后的
        '一个段落添加到比较区域中,
        '以便进行检查, 并删除第一个,
        '因为对其不再需要.
        lngMovedAmount = rngRange.MoveEnd(Unit:=wdParagraph, Count:=1)
        rngRange.MoveStart Unit:=wdParagraph, Count:=1
    End If
 Loop
End Sub
vba

0 人点赞