有时候我们需要对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


发表评论