如何合并多个excel文件到一个excel文件中且要放在不同的工作表内
一、整体简介:我理解你的需求应该是:用一个excel工作簿(结果工作簿.xlsm)来获取其它工作簿中的工作表内容,将其保存至当前工作簿中(分不同工作表保存)。
如图:
二、所需工具/原料:微软office2007(但要启用宏)
如图:
三、方法:新建一个空excel文档,写入宏代码,关联宏代码,执行宏=结果。
四、步骤:
1、新建一个空白的excel,并打开
2、切换到【视图】-【宏】-【查看宏】。如图:
3、输入“宏名”-点【创建】按钮。如图:
4、输入宏代码,并保存。如图:
代码如下:
Sub 复制指定工作簿的全部工作表3()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="2015")
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
errhadler:
MsgBox Err.Description
End Sub
5定义快速按钮用于执行宏。如图:
6完善第5步骤:“从下列位置选择命令-【宏】”-双击自定义的宏,添加至右边-修改宏属性(图标,名称等),图标、名称随便自定-然后一路确定下来-最后保存这个excel文件。如图:
7、打开刚刚新建的带宏的excel文件,点击宏的执行按钮,就能得到你想要的结果。如图:
五、好人做到底,最后给你附件
具体步骤如下:
操作方法
1、首先我们需要把所有需要合并的excel文件放到一个文件夹中,并且新建一个空白的excel文件。
2、然后打开这个新建的excel文件,右键点击sheet1选择查看代码。
3、然后会出现如下的界面。
4、然后把如下代码复制粘贴到代码栏。
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
5、接下来就是运行代码,点击运行→运行子过程/用户窗体。
6、合并成功!合并完成后,各自的文件会自动分成各自的excel文件标签。
2、输入以下代码:
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
3、输好后找到工具栏,下拉有一个“运行子过程/用户窗体”。保存,就可以了。
如果是同一个excel多个sheet,可以使用shift键,选中第一个,再按住shift按最后一个sheet,右击sheet名称移动复制