我有一个文件夹,每天都会收到 1000 多个 Excel 文件,它们的格式和结构都相同。我想做的是每天对所有 100 多个文件运行宏?
有没有办法自动化这个?因此我每天可以继续在 1000 多个文件上运行相同的宏。
最佳答案
假设您将文件放在相对于主工作簿的“Files”目录中,您的代码可能如下所示:
Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook
Pathname = ActiveWorkbook.Path & "\Files\"
Filename = Dir(Pathname & "*.xls")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub
Sub DoWork(wb As Workbook)
With wb
'Do your work here
.Worksheets(1).Range("A1").Value = "Hello World!"
End With
End Sub
在此示例中,DoWork()
是应用于所有文件的宏。确保您在宏中进行的所有处理始终在 wb
(当前打开的工作簿)的上下文中进行。
免责声明:为简洁起见,跳过了所有可能的错误处理。
关于vba - 在多个 Excel 文件上运行相同的 Excel 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14766238/