乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何把多个EXCEL表合并在一个表里分多个工作簿-excel分表合并,多个分表合并到总表

如何把多个EXCEL表合并在一个表里分多个工作簿-excel分表合并,多个分表合并到总表

作者:乔山办公网日期:

返回目录:excel表格制作


将需要合并的excel工作簿文件放置在一个文件夹中。
每个文件夹中的工作簿都输入了简单的内容。

在该文件夹中,新建立一个新的excel工作簿文件。重命名为8.

打开新建立的excel工作簿文件8.按Alt+F11或者将鼠标移动到下方工作表名称sheet1上右键,选择查看代码。

在弹出的代码编辑窗口中,输入代码。注意:通过快7a64e4b893e5b19e337捷键Alt+F11打开的窗口如下没有直接复制代码的面板,需要点击左上方的工程-VBA project模块,双击sheet1,即可打开代码窗口。而步骤3中的第二种方法可以直接打开代码输入窗口。

在代码窗口中,黏贴下列代码:
Sub CombineFiles()
Dimpath As String
DimFileName As String
DimLastCell As Range
DimWkb As Workbook
DimWS As Worksheet
DimThisWB As String

Dim MyDir AsString
MyDir =ThisWorkbook.path & "\"
'ChDriveLeft(MyDir, 1) 'find all the excel files
'ChDir MyDir
'Match =Dir$("")

ThisWB =ThisWorkbook.Name
Application.EnableEvents = False
Application.ScreenUpdating = False
path =MyDir
FileName =Dir(path & "\*.xls", vbNormal)
Do UntilFileName = ""
If FileName <> ThisWB Then
Set Wkb = Workbooks.Open(FileName:=path & "\"& FileName)
For Each WS In Wkb.Worksheets
Set LastCell = WS.Cells.SpecialCells(xlCellTypeLastCell)
If LastCell.Value = "" And LastCell.Address = Range("$A$1").AddressThen
Else
WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
End If
Next WS
Wkb.Close False
End If
FileName = Dir()
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True

Set Wkb =Nothing
Set LastCell= Nothing
End Sub

点击菜单栏运行-运行子过程-用户窗体。关闭代码输入窗口。打开excel工作簿8.可以看到下方已经多了很多新的工作表——此时,我们已经将之前的工作簿中的工作表都复制到了这一新建的工作簿中

用宏

Sub 合并当zd前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub

1、首先,我们需要在C列添加一个辅助列,在第一个数据右边的单元格(C2),输入函数e68a84e799bee5baa6e997aee7ad94331公式:=B2。

2、在下一个单元格(C3),输入函数公式:=IF(A3=A2,C2&"/"&B3,B3)即:如果A列的姓名与上一个单元格相同,返回结果上一个单元格的内容加B列对应的数据,并与之以斜杠隔开,否则,等于B列对应的数据。

3、向下填充公式后,我们可以看到,各姓名中的最后一个姓名对应右侧(C列)的数据,就是我们想要的结果。

4、但是我们要批量地提取想要的内容,我们需要再建立一个辅助列(D列)。在D2单元格输入公式:=IF(ISNUMBER(FIND(C3,C4)),0,1)即:如果C列的数据,在下一个单元格中能找到本单元格的内容,就返回结果"0",否则返回结果"1"。公式向下填充后,我们可以看到,各姓名中的最后一个姓名在D列对应的计算结果为数字1,其他的姓名在D列对应的计算结果都为0。

5、我们选中辅助列的数据(C列和D列),复制后,在原位置选择性粘贴为"数值"(新建辅助列粘贴也可以)。如果不粘贴为"数值",我们在进行排序时,公式的引用会发生错乱,即:计算结果会发生改变(即:计算出错)。

6、我们选择D1单元格,在开始菜单下找到排序,并使用"降序"排序。

7、降序排序后的结果,非常迅速、完美地解决了我们的问题。



  1. 在要移动的工作表上点击右键,出现菜单,选择“移动或复制”。 

  2. 选择你要移动到的工作簿,如果要保留原位置就选择”建立副本“。工作表就复制到新工作簿中了。 其他两个分表重复此动作即可实现合并。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网