【发布时间】:2020-09-27 05:51:55
【问题描述】:
一位同事问我是否可以写一个单词宏来帮助他们;他们使用一项服务,将几篇报纸文章转储到一个没有任何标题的 word 文件中,并且他们想创建一个 TOC。
我说“绝对不是”,因为我没有任何编写单词宏的经验。但是,我发现通过一些谷歌搜索我可以创建以下内容
Sub CreateHeadings()
Dim oRng As Word.Range
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = "[0-9]@ Wörter"
.Replacement.Text = ""
.Replacement.Style = "Heading 2"
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = "([0-9])(l[!a-z])"
.Replacement.Text = "\1^s\2"
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End Sub
这几乎可以满足我的要求。但是,我需要替换出现在我的搜索模式之前的粗体行,例如
某位作者; “标题”
也许是额外的一行
565 沃尔特
必须用相同的文本替换,但粗体部分被格式化为标题。
有没有简单的方法可以做到这一点?还是我应该先阅读 vba 以完全了解我在这里做什么?
更新:我清理了不需要的部分并尝试采纳 Timothy Rylatt 的有用建议。
Sub CreateHeadings()
Dim oRng As Word.Range
Set oRng = ActiveDocument.Range
With oRng.Find
.Font.Bold = True
.Format = True
With oRng.Find
.Text = "[0-9]@ Wörter"
End With
.Replacement.Style = "Heading 2"
.Execute Replace:=wdReplaceAll
End With
End Sub
这现在没有任何作用。我希望我能很快理解一些 vba 语法,以便我可以为可能对此类内容感兴趣的其他人更新这篇文章的工作代码。
【问题讨论】: