vba - 在多个 Excel 文件上运行相同的 Excel 宏

标签 vba excel

我有一个文件夹,每天都会收到 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/

相关文章:

Excel 中的 VBA 匹配

sql - 如何使用 Access SQL VBA 在 where 子句中正确使用两个 Not Exists 语句?

excel - 如何验证 2 个变量是整数类型?

vba - 如何选择正在运行的 Word 实例并在其中打开文档

excel - 访问 VBA 创建不合格的引用,同时通过 excel 工作表循环

vba - Excel VBA将参数传递给OLEDBConnection

excel - 如何用excel vba格式化带小数位的时间?

excel - 禁用用户窗体上的按钮

excel - 如何独立于Office文档存储VBA程序?

Excel 中的 VBA 公共(public)用户定义函数