TOP

工作表集合

描述

有时我们需要合并不同 Excel 工作簿中的工作表来创建新的报告或合并数据文件。此类操作可以使用标准 MS Excel 工具手动完成,但这可能需要大量时间和精力。让我们考虑如何自动化此过程并加快报告的处理速度。

例如,我们有很多工作簿Excel,我们想要制作 工作表集合 将所有书籍合并到一个文件中。为此,请打开要收集所有工作表的工作簿并添加以下宏代码。


VBA 宏代码

打开 Excel 工作簿(您要在其中收集所有工作表),打开 Visual Basic Editor (Alt+F11), 插入模块VBA Insert - Module )并将此宏代码复制到此处:

Sub CombineWorkbooks()
    'moonexcel.com.ua
    Dim FilesToOpen
    Dim x As Integer
    
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
    
    FilesToOpen = Application.GetOpenFilename _
                  (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
                   MultiSelect:=True, Title:="Files to Merge")
                   
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox " 未选择任何文件! "
        GoTo ExitHandler
    End If
    
    x = 1
    While x <= UBound(FilesToOpen)
        Workbooks.Open Filename:=FilesToOpen(x)
        Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        x = x + 1
    Wend
    
    ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
    
    ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
    
End Sub

之后,您可以返回Excel并通过菜单运行我们的宏 Tools - Macro - Macros (Alt+F8) 。将出现一个对话框,您需要在其中选择一个或多个(按住 Ctrl 键)文件,我们要将其工作表添加到当前工作簿中。

如果您使用不同的 Excel 文件扩展名(例如,*.xlsx、*.xlsm、*.xlsb 等),那么您将需要对宏代码的第九行进行适当的更改。

有关该主题的文章: