vba - 用于在每个段落的开头添加文本的宏
问题描述
我正在尝试创建一个 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
解决方案
如果您的标题、目录和标题等不使用普通样式 - 因为它们不应该 - 你真的不需要宏 - 你只需要一个通配符查找/替换,其中:
Find = [!^13]*^13
Replace = SAMPLE: ^&
并且您将 Normal Style 指定为 Find 格式参数。当然,您可以将上述内容记录为宏,但这似乎有点过分,除非您经常这样做。
推荐阅读
- cakephp - cakephp-3 是否从我的数据库中删除过期会话?
- ionic-framework - 离子3中的分页有问题吗?
- javascript - 处理 JavaScript 中被遗忘的 promise
- swift - 用户可以在不同帐户上恢复相同的购买
- c++ - 给定位置和半径,如何在 D3D11 中绘制球体?
- swift - 如何在饼图 Swift 中设置中心视图标签?
- perl - Sub::Override 不会覆盖 DBI 方法。为什么?
- swift - Swift 和 Interface Builder 中的单例
- react-native - 在无限模式下反向动画
- android - 秘密对话框