使用 vba 更改 word 文档中的页脚
Change the footer in word doc using vba
我有一个 .docx 模板,其中包含我想用另一个字符串替换的字符串(如序列号、日期、作者等)。我想为此使用 excel。
Dim MaFeuille As Worksheet
Set MaFeuille = Sheets("Information")
Dim file As String
file = ActiveWorkbook.Path & "\" & "nomfichier.docx"
Dim word_app As Object
Set word_app = CreateObject("Word.Application")
With word_app
.Visible = True
.WindowState = 1 'value for wdWindowStateMaximize
End With
Dim word_fichier As Object
Set word_fichier = word_app.Documents.Open(file)
With word_fichier.Range.Find
.Text = "blabla"
.Replacement.Text = "coucou"
.Execute Replace:=2
End With
它在工作,但在 header/footer 中不工作。所以我修改了关于 Header/Footer (https://docs.microsoft.com/fr-fr/office/vba/api/word.headersfooters) 的文档,所以只是为了尝试,我输入了示例:
With word_fichier.Sections(1)
.Headers(wdHeaderFooterPrimary).Range.Text = "Header goes here"
.Footers(wdHeaderFooterPrimary).Range.Text = "Footer goes here"
End With
但是我有一个 5941 错误。
感谢@Míša Charvátová,我添加了“Microsoft Word 16.0 对象库”并且它正在运行。
编辑(更好的答案):
Do you have "Microsoft Word 16.0 Object Library" added to References under tools? I tried your code and when this was added, it worked
我有一个 .docx 模板,其中包含我想用另一个字符串替换的字符串(如序列号、日期、作者等)。我想为此使用 excel。
Dim MaFeuille As Worksheet
Set MaFeuille = Sheets("Information")
Dim file As String
file = ActiveWorkbook.Path & "\" & "nomfichier.docx"
Dim word_app As Object
Set word_app = CreateObject("Word.Application")
With word_app
.Visible = True
.WindowState = 1 'value for wdWindowStateMaximize
End With
Dim word_fichier As Object
Set word_fichier = word_app.Documents.Open(file)
With word_fichier.Range.Find
.Text = "blabla"
.Replacement.Text = "coucou"
.Execute Replace:=2
End With
它在工作,但在 header/footer 中不工作。所以我修改了关于 Header/Footer (https://docs.microsoft.com/fr-fr/office/vba/api/word.headersfooters) 的文档,所以只是为了尝试,我输入了示例:
With word_fichier.Sections(1)
.Headers(wdHeaderFooterPrimary).Range.Text = "Header goes here"
.Footers(wdHeaderFooterPrimary).Range.Text = "Footer goes here"
End With
但是我有一个 5941 错误。
感谢@Míša Charvátová,我添加了“Microsoft Word 16.0 对象库”并且它正在运行。
编辑(更好的答案):
Do you have "Microsoft Word 16.0 Object Library" added to References under tools? I tried your code and when this was added, it worked