我正在尝试自动执行Word 2013文档中标题的搜索/替换(请注意,这些不是Word样式标题,而只是用冒号大写的文本)。例如:
首席投诉人:
体检:
搜索和替换仅是将标题设置为粗体,否则必须手动完成,否则标题文本保持不变。无法知道文档中的标题(或完全没有标题),顺序或文档的第一行是否包含标题。
手动搜索/替换以下项:^ 13(*:)
为此:^ p \ 1
有效,除非第一个实例位于文件的开头(不返回)。
我一直在使用的宏是这样的:
Sub BoldHeadings()
'
' BoldHeadings Macro
'
Application.ScreenUpdating = False
With ActiveDocument.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Format = False
.Forward = True
.MatchWildcards = True
.Wrap = wdFindContinue
.Text = "^13(*:)"
.Replacement.Text = "^p\1"
.Replacement.Font.Bold = True
.Execute Replace:=wdReplaceAll
.Replacement.ClearFormatting
End With
Application.ScreenUpdating = True
End Sub
如上所述,除非第一个实例位于文件开头,否则此方法工作正常。有没有其他方法可以实现这一目标?
谢谢!
答案 0 :(得分:0)
尝试:
Sub BoldHeadings()
Application.ScreenUpdating = False
With ActiveDocument.Range
.InsertBefore vbCr
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Replacement.Font.Bold = True
.Text = "^13*:"
.Replacement.Text = "^&"
.Format = True
.Forward = True
.MatchWildcards = True
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
.Paragraphs.First.Range.Delete
End With
Application.ScreenUpdating = True
End Sub