您的位置首页百科知识

多个EXCEL文件的工作表合并到一个EXCEL文件

多个EXCEL文件的工作表合并到一个EXCEL文件

的有关信息介绍如下:

多个EXCEL文件的工作表合并到一个EXCEL文件

工作和生活中,总是遇到需要从多个EXCEL文件提取表,合并在一个EXCEL文件中。手动操太麻烦,这里用VBA代码就能一键实现,操作简单且准确无误。

将需要合并的EXCEL文件与目的EXCEL文件放在一个文件夹下。A文件、B文件、C文件为需要合并的EXCEL文件,再在这个文件夹下创建一个EXCEL文件:HB.xlsx,作为合并文件。如图所示。

打开HB.xlsx,将“开发工具”菜单加载到EXCEL菜单下。首先右键点击菜单空白处,选择“自定义功能区”,在弹出的对话框里选择主选项卡。然后勾选“开发工具”。如图所示。

制作导入键。点击“开发工具”菜单,选择“插入”--“Activex”控件下的命令按键。在工作表中画一个命令按钮。如图所示。

单击“开发工具”下的“设计模式”,再双击刚刚创建的命令按钮“CommandButton1”,进入代码编辑框。如图所示。

将以下代码全部复制到代码框中。(注意:要将代码框中已存在的

“Private Sub CommandButton1_Click()“和”End Sub”这两行语句删除掉再粘贴)

Private Sub CommandButton1_Click()

Dim path As String

Dim FileName As String

Dim LastCell As Range

Dim Wkb As Workbook

Dim WS As Worksheet

Dim ThisWB As String

Dim MyDir As String

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 & "\*.xlsx", vbNormal)

Do Until FileName = ""

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").Address Then

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

如图所示。

将HB文件保存成启用宏的工作簿。关闭当前代码框,回到EXCEL界面。选择“文件”--“另存为”--“保存类型”下选择“启用宏的工作簿”,OK。

打开HB.xlsm,单击按钮。则几个需要合并的EXCEL文件中的工作表A,B,C合并到了HB.xlsm这个文件中。如图所示。