用于在每个段落的开头添加文本的宏

问题描述 投票:0回答:1

我正在尝试创建一个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
vba ms-word word-vba paragraph
1个回答
0
投票

如果您的标题,目录和标题等不使用正常样式 - 因为它们不应该 - 您实际上不需要宏 - 您只需要一个通配符查找/替换其中:

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

并将“正常样式”指定为“查找格式”参数。当然,您可以将上述内容记录为宏,但这似乎有点过分,除非您经常这样做。

© www.soinside.com 2019 - 2024. All rights reserved.