请问如何将多张格式相同的excel表格合并一张
1、假设需要把3月1日到3月10日的数据合并起来汇总,打开电脑数据盘。
2、新建空白文件夹,然后把合并的表格放置在这个文件夹中。
3、新建一个空白excel表格。
4、点击excel表格中数据—>合并表格—>多个工作表合并成一个工作表。
5、点击添加文件,把需要合并的excel数据表添加到文件中。
6、完成上一步后,取消勾选新建的excel表,并在左下方的选项中点击,选择表格标题的行数为1,然后点击开始合并。
7、完成后,在新的excel表中,会出现两个工作簿,其中一个是合并的报告,显示数据合并成功与否,另外一个是合并后的工作簿。
如果要将多张表格的数据合并在一起做汇总,如何能快速的将多张表格的记录合并到一起呢?
把 多个工作表 合并到到一张表, 最快捷的方法是用宏处理:
例如 将多个表合并到总计表:
总计 表只留一个标题
右键点 汇总 工作表 标签 ,查看代码, 把如下代码复制进去, F5运行:
Sub 工作表合并()
For Each st In Worksheets
If st.Name <> ActiveSheet.Name Then st.UsedRange.Offset(1, 0).Copy [a65536].End(xlUp).Offset(1, 0)
Next
End Sub
就会把多个表合并 到 总表,
如下例: 在Sheet 总计 中 运行 如上代码,就会将所有 月份 分表 汇总 进来,方便后续处理,而 不需要一次次粘贴处理
第二在这个新建立 的文件夹里再新建一个excel表格文件
打开这个文件 在左下角sheet1标签处右键 查看代码 然后把下面代码 复制进去 然后点运行 运行子过程
等几不一会时间就可以了,你的表格没有合并过和单元格才行,如果 有这个程序也会中断的,还有确定每个表的A列得有内容
等待合并完以后把B列有空的行用筛选的方式删除了就行
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
第二在这个新建立 的文件夹里再新建一个excel表格文件
打开这个文件 在左下角sheet1标签处右键 查看代码 然后把下面代码 复制进去 然后点运行 运行子过程
等几不一会时间就可以了,你的表格没有合并过和单元格才行,如果 有这个程序也会中断的,还有确定每个表的A列得有内容
等待合并完以后把B列有空的行用筛选的方式删除了就行
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub