怎么把两个 Microsoft Excel 工作表 合并?
1.需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。如图所示:
2.用microsoft excel打开新建的excel表,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。如图所示:
3.然后把下面这些宏计算的代码复制进去,然后找到工具栏上面的“运行”下的“运行子过程/用户窗体”,代码如下,如图所示:
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
4.运行之后,等待10秒针左右,等运行完毕,就是合并完成之后,会有提示,点确定就可以了。查看合并后的数据,有5000多行,就是同一个文件夹里面17个excel表数据合并后的结果。效果如图所示。
推荐于2017-12-16
(1)需要将多个 Excel 文件进行合并;
(2)需要将多个 Sheet 进行合并;
这里给出最佳答案。当然您得需要会使用宏(MICRO)。
功能一:合并Excel文件
Sub CombineWorkbooks()
Dim FilesToOpen, ft
Dim x As Integer
Application.ScreenUpdating = False
On Error GoTo errhandler
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Micrsofe Excel文件(*.xls), *.xls", _
MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "boolean" Then
MsgBox "没有选定文件"
End If
x = 1
While x <= UBound(FilesToOpen)
Set wk = Workbooks.Open(Filename:=FilesToOpen(x))
wk.Sheets().Move after:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
MsgBox "合并成功完成!"
errhandler:
End Sub
功能二:合并任意的 Sheet
合并之前,请先创建一个空白的 Sheet 作为合并目标 Sheet ,这个 Sheet 必须是第一个 Sheet 哦。
如果不合并标题行(比如第一行)则 j=1 改为 j=2
如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数。
比如 j=2 k=3 表示从 第2行,第三列开始的数据。
Sub CombineSheet()
Dim i, j, k, n As Integer
n = 1
For i = 2 To ThisWorkbook.Sheets.Count
For j = 2 To ThisWorkbook.Sheets(i).UsedRange.Rows.Count
For k = 1 To ThisWorkbook.Sheets(i).UsedRange.Columns.Count
ThisWorkbook.Sheets(1).Cells(n, k).Value = ThisWorkbook.Sheets(i).Cells(j, k).text
Next k
n = n + 1
Next j
Next i
End Sub
意外惊喜:合并 Sheet 的功能会自动去掉 超链接(HREF) 标记。
实际上,为了去掉 Excel 的所有超链接,也可以使用这个函数啊。
2、在其中一个工作簿选择所有的工作表,方法是先选择第一个工作表,按住shift键,然后点最后一个工作表,这样就可以快速全部选中
3、当然,也可以右击任意一工作表,在弹出的菜单中选择“选定全部工作表”选择所有的工作表。
4、右击工作表标签,在弹出的菜单中选择“移动或复制工作表”在第一个下拉框中选择另一个要合并的工作簿。
5、这样就可以快速将当前工作簿的所有工作表合并到另外一个工作簿了。
6、这里需要注意的是如果两个工作簿,有相同名字的工作簿的话,系统自动用(2)来命名。
7、这样做的话,当前工作簿不会发生变化,复制移动的工作簿,会合并两个工作表的所有内容。
8、如果不改变原文件的话,可以新建一个空白工作再复制移动工作表到新的文件。