Макрос MS Word: Как заменить повторяющийся абзац новым абзацем? - PullRequest
0 голосов
/ 29 мая 2020

Интересно, не могли бы вы помочь мне со следующей проблемой.
У меня огромный документ, в котором много повторяющихся абзацев. Я нашел макрос на Inte rnet, который может найти их все и удалить:

Sub DeleteDuplicateParagraphs()
'PURPOSE: Remove Duplicate Paragraphs Throughout the Entire Word Document
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim p1 As Paragraph
Dim p2 As Paragraph
Dim DupCount As Long

DupCount = 0

For Each p1 In ActiveDocument.Paragraphs
  If p1.Range.Text <> vbCr Then 'Ignore blank paragraphs

    For Each p2 In ActiveDocument.Paragraphs
      If p1.Range.Text = p2.Range.Text Then
        DupCount = DupCount + 1
        If p1.Range.Text = p2.Range.Text And DupCount > 1 Then p2.Range.Delete
      End If
    Next p2

  End If

  'Reset Duplicate Counter
    DupCount = 0

Next p1

End Sub

Однако я хотел бы знать, есть ли способ имитировать нажатие клавиши Enter, чтобы создайте новый абзац в том месте, где был удален каждый дубликат. Другими словами, мне нужно заменить повторяющиеся абзацы новым пустым абзацем ИЛИ удалить повторяющийся текст без фактического удаления абзаца.
Надеюсь, я был достаточно ясен, чтобы вы поняли, что я имею в виду.
Все равно спасибо.

1 Ответ

0 голосов
/ 30 мая 2020

Просто измените:

p2.Range.Delete

на:

p2.Range.Text = vbCr
...