我正在尝试编写一个代码,从模板文件创建一个新文件,并用 Excel 中的表格替换某些单词(标题、文档编号、项目编号等)。
我目前可以在谷歌上找到这个代码。它目前仅更改项目名称(在模板中使用 /PROJ/ 作为占位符编写)。目前只是测试。 但是,它不会获取标题中的项目名称。 有什么解决办法吗?
Public Sub WordFindAndReplace()
Dim ws As Worksheet, msWord As Object
Dim myDoc As Word.Document
Set ws = ActiveSheet
Set msWord = CreateObject("Word.Application")
With msWord
.Visible = True
.Activate
.Documents.Add "C:\Users\*User*\Documents\Custom Office Templates\MRB_Template.dotx"
With .ActiveDocument.Content.Find
.Text = "/PROJ/"
.Replacement.Text = ws.Range("I1").Value2
.Wrap = wdFindContinue
.MatchWholeWord = True
.Execute Replace:=wdReplaceAll
.Execute Replace:=2 'wdReplaceAll (WdReplace Enumeration)
End With
End With
End Sub
我也尝试过插入书签并替换它,但它仍然无法在标题中拾取书签。
您必须遍历所有部分才能找到所有标题才能执行此操作。
添加此片段
For Each Section In .ActiveDocument.Sections
For Each Header In Section.Headers
With Header.Range.Find
.Text = "/PROJ/"
.Replacement.Text = ws.Range("I1").Value2
.Wrap = wdFindContinue
.MatchWholeWord = True
.Execute Replace:=wdReplaceAll
.Execute Replace:=2 'wdReplaceAll (WdReplace Enumeration)
End With
Next
Next
在您进行其他更换之前或之后。这是相同的替换,但对文档中的每个标题进行一次替换。