我对 VBA 还很陌生,但我需要一个 VBA 脚本来将文件名作为页脚插入 Excel。理想情况下,我想将文件名的前 7 个字符插入到 excel 文件的每个选项卡的页脚中。
我有大约 5000 个 Excel 文件需要此宏。我只能使用以下代码将页眉/页脚插入每个工作表和所有选项卡(而不是多个文件):
Sub InsertHeaderFooter()
' inserts the same header/footer in all worksheets
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
Application.StatusBar = "Changing header/footer in " & ws.Name
With ws.PageSetup
.RightFooter = "&"
End With
Next ws
Set ws = Nothing
Application.StatusBar = False
End Sub
答案1
在 Excel 2007 中, Plain&
对我来说不起作用;也许您是指&[File]
新&
版本中的简写?
对于 5000 个文件,您可能需要确保它们都位于同一位置,然后循环遍历该位置的所有 .xlsx 文件。(您是否也需要根据文件名进行过滤?)
如果你用 Google 搜索,multiple files excel vba
我认为你会发现第 3 条结果和下面的结果相关。MSDN 文章中的一些关键元素:
' Modify this folder path to point to the files you want to use.
FolderPath = "C:\Users\Peter\invoices\"
' Call Dir the first time, pointing it to all Excel files in the folder path.
FileName = Dir(FolderPath & "*.xl*")
' Loop until Dir returns an empty string.
Do While FileName <> ""
' Open a workbook in the folder
Set WorkBk = Workbooks.Open(FolderPath & FileName)
' DO WORK
' DO SAVE CHANGES
WorkBk.Close savechanges:=True
' Use Dir to get the next file name.
FileName = Dir()
Loop
如果需要深入到子目录中,请考虑将整个 Do While 循环拆分为一个 Sub,该 Sub 以递归方式调用自身(并将文件夹位置作为参数传递)。谷歌搜索vba loop through folder tree
...请参阅递归答案这一页