Ethan's Blog

记录和思考

合并多个 Excel 到一个工作薄

上次在做一个项目,需要读取 Excel 中的数据,录入到 Sql Server 数据库。每一类数据的 Excel 文件结构相似但是数目都非常多,当时写程序读取时,不想做文件夹的遍历,于是想先把这些 Excel 合并到一个工作薄中,找到了以下的 VBA 代码,用来将多个 Excel 合并到一个工作薄,这样同一类型的数据只需要读取一个合并后的 Excel 文件即可。

以下为所用的 VBA 代码:

Sub 工作薄间工作表合并()
    Dim FileOpen
    Dim X As Integer
    Application.ScreenUpdating = False
    FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="合并工作薄")
    X = 1
    While X <= UBound(FileOpen)
        Workbooks.Open(Filename:=FileOpen(X))
        Sheets().Move(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        X = X + 1
    End While

    ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub

    errhadler:
    MsgBox(Err.Description)
End Sub

使用方法为:右键点击 Excel 中任意的一个 Sheet 名字,选择查看代码,将上面代码拷入,F5 运行即可。

相关文章: