Excel如何批量合并?

关于表格合并,一般会有3种情况:

(p.s:请注意工作簿跟工作表的区别

将一个 Excel 工作簿中的多个工作表合并成一个工作表

将多个 Excel 工作簿合并成一个工作簿

将多个 Excel 工作簿的工作表合并成一个工作表

下面分别根据3种情况进行详细的步骤说明,请读者根据自己的需要取用:

一、将一个 Excel 工作簿中的多个工作表合并成一个工作表

1、新建一个Excel工作薄,工作簿名称任你定义。

2、打开此工作薄,将其中一个Sheet重命名为"汇总"。

3、在其下任一个工作表标签上点击右键,选择“查看代码”。

4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 合并工作簿内的多个Sheet到同一个Sheet()

Dim i, j As Integer 'i是数据源表的最后一行,j是目标表(数据表)的最后一行

Dim sht As Worksheet

Application.ScreenUpdating = False '关闭屏幕刷新

'先要删除所有数据

Sheets("汇总").Range("a1:z65536").ClearContents

'复制数据

For Each sht In Sheets

If sht.Name <> "汇总" Then

i = sht.Range("d65536").End(xlUp).Row

j = Sheets("汇总").Range("d65536").End(xlUp).Row

sht.Range("a1:z" & i).Copy Sheets("汇总").Range("a" & j + 1)

End If

Next

MsgBox "执行完毕!"

Application.ScreenUpdating = True '打开屏幕刷新

End Sub

5、关闭VBA编辑窗口。

6、在excel中,工具---宏---宏,选“合并工作簿的各个sheet到同一个sheet”,然后“执行”。

7、等待...ok!

二、将多个 Excel 工作簿合并成一个工作簿

1、新建一个工作薄,将其命名为你合并后的名字。

2、打开此工作薄。

3、在其下任一个工作表标签上点击右键,选择“查看代码”。

4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 工作薄间工作表合并()

Dim FileOpen

Dim X As Integer

Application.ScreenUpdating = False

FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls*),*.xls*", 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

Wend

ExitHandler:

Application.ScreenUpdating = True

Exit Sub

errhandler:

MsgBox Err.Description

End Sub

5、关闭VBA编辑窗口。

6、在excel中,工具---宏---宏,选“工作薄间工作表合并”,然后“执行”。

7、在打开的对话窗口中,选择你要合并的300个工作薄。

8、等待...ok!

三、将多个 Excel 工作簿的工作表合并成一个工作表

1、新建一个Excel工作薄,工作簿名称任你定义。

2、打开此工作薄,将其中一个Sheet重命名为"汇总"。

3、在其下任一个工作表标签上点击右键,选择“查看代码”。

4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 多文件合并能够自由选择文件夹()

Dim arr()

Dim wb As Workbook

Dim sht As Worksheet

arr = Application.GetOpenFilename("Excel文件,*.xls*", 2, , , True)

Application.ScreenUpdating = False '关闭屏幕刷新

If arr(1) <> "False" Then

For i = LBound(arr) To UBound(arr)

Set wb = Workbooks.Open(arr(i))

For Each sht In wb.Sheets

'以下4行是壳内的命令,用于复制打开的工作簿

If InStr(sht.Name, "费用") > 0 Then

irow = sht.Range("A65536").End(xlUp).Row

irow1 = ThisWorkbook.Sheets("汇总").Range("A65536").End(xlUp).Row + 1

sht.Range("a1:z" & irow).Copy ThisWorkbook.Sheets("汇总").Range("a" & irow1)

wb.Close False '关闭工作簿并且不保存

End If

Next

Next

End If

MsgBox "执行完毕!"

Application.ScreenUpdating = True '打开屏幕刷新

End Sub

5、指定要合并的Sheet。对“If InStr(sht.Name, "费用") > 0 Then”这段代码中的"费用"修改,比如修改成"经销商",则包含“经销商”几个文字的都会纳入合并

6、关闭VBA编辑窗口。

7、在excel中,工具---宏---宏,选“多文件合并能够自由选择文件夹”,然后“执行”。

8、在打开的对话窗口中,选择你要合并的几个工作薄文件。

9、等待。。。。ok!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容