1

我有大约 100 个需要更改页眉和页脚的文档。

有没有可能我可以通过在 word 文件中编写 vba 代码或宏来做到这一点?

是否可以在宏中提供一个特定文件夹,该文件夹将为该页脚中的所有文档添加页眉和页脚?

下面的代码给了我

错误 5111

Private Sub Submit_Click()

        Call openAllfilesInALocation

End Sub


Sub openAllfilesInALocation()
Dim i As Integer
With Application.FileSearch
.NewSearch
.LookIn = "C:\MyFolder\MySubFolder"
.SearchSubFolders = False
.FileName = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
'Open each workbook
Set Doc = Documents.Open(FileName:=.FoundFiles(i))
'Perform the operation on the open workbook
'wb.Worksheets("sheet1").Range("A1") = Date
'Save and close the workbook
With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header goes here"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer goes here"
End With

Doc.Save
Doc.Close
'On to the next workbook
Next i
End With
End Sub
4

1 回答 1

3

在您提供的代码中,您尝试使用旧.FileSearch属性。它曾经工作到 MS Office 2003,但现在不行。这是为您改进的代码。它将打开一个标准文件窗口,您可以在其中选择一个或几个文件进行处理。

Sub openAllfilesInALocation()
Dim Doc
Dim i As Integer

Dim docToOpen As FileDialog
Set docToOpen = Application.FileDialog(msoFileDialogFilePicker)
    docToOpen.Show

For i = 1 To docToOpen.SelectedItems.Count
'Open each document
Set Doc = Documents.Open(FileName:=docToOpen.SelectedItems(i))

With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header goes here"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer goes here"
End With

Doc.Save
Doc.Close

Next i

End Sub
于 2013-03-20T10:02:22.393 回答