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