我有一个文件夹,每天可以收到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(当前打开的工作簿)的上下文中。

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

10-05 21:11
查看更多