在多个excel文件上运行相同的excel宏

use*_*210 13 excel vba excel-vba

我有一个文件夹,我每天都会收到1000多个excel文件,它们都是相同的格式和结构.我想做的是每天在所有100多个文件上运行宏?

有没有办法实现自动化?所以我可以每天在1000多个文件上继续运行相同的宏.

pet*_*erm 16

假设您将文件放在相对于主工作簿的"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
Run Code Online (Sandbox Code Playgroud)

在此示例中DoWork()是您应用于所有文件的宏.确保您在宏中执行的所有处理始终位于wb(当前打开的工作簿)的上下文中.

免责声明:为简洁起见,跳过了所有可能的错误处理.