我有一个文件夹,每天可以收到1000多个excel文件,它们都是相同的格式和结构。我想做的是每天对所有100多个文件运行一个宏?
有办法自动化吗?因此,我可以每天继续在1000多个文件上运行相同的宏。
最佳答案
假设您将文件放在相对于主工作簿的“文件”目录中,则代码可能如下所示:
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
(当前打开的工作簿)的上下文中。免责声明:为简洁起见,跳过了所有可能的错误处理。