Макрос для добавления текста в начало каждого абзаца - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь создать макрос Word, который пройдет через мой большой документ и добавит текст «SAMPLE» в начало каждого абзаца. Документ содержит титульный лист, оглавление и заголовки, и я бы предпочел, чтобы ни на одном из них не было текста «SAMPLE», только абзацы.

Ниже приведен код макроса, который я нашел на разных сайтах, и собрал несколько кусочков, чтобы сделать что-то, что я хочу. Он помещает текст «SAMPLE» в начале некоторых абзацев, но не во всех, обычно только в первом абзаце нового раздела в моем документе. И он также помещает его в конец оглавления и начала титульного листа. Я новичок в макросах в Word, поэтому любая помощь приветствуется, или, возможно, есть лучший способ сделать это? В этом коде могут даже быть некоторые ненужные биты, поскольку он собран из других примеров.

Sub SAMPLE()

Application.ScreenUpdating = False
Dim Par As Paragraph, Rng As Range
For Each Par In ActiveDocument.Paragraphs

  If Par.Style = "Normal" Then
    If Rng Is Nothing Then
      Set Rng = Par.Range
    Else
      Rng.End = Par.Range.End
    End If
  Else
    Call RngFmt(Rng)
  End If

  If Par.Range.End = ActiveDocument.Range.End Then
    Call RngFmt(Rng)
  End If

Next
Application.ScreenUpdating = True
End Sub

Sub RngFmt(Rng As Range)
If Not Rng Is Nothing Then
  With Rng
    .End = .End - 1
    .InsertBefore "SAMPLE"

  End With
  Set Rng = Nothing
End If
End Sub

1 Ответ

0 голосов
/ 21 марта 2019

При условии, что ваше название, оглавление, заголовки и т. Д. Не используют обычный стиль - как они не должны - вам действительно не нужен макрос для этого - все, что вам нужно - это подстановочный знак Найти / Заменить где:

Find = [!^13]*^13
Replace = SAMPLE: ^&

, и вы задаете Нормальный Стиль как параметр форматирования Поиск.Конечно, вы можете записать вышеприведенное как макрос, но это кажется излишним, если вы не делаете это часто.

...