设置主页 | 收藏本站 Excel学习网-公益型的EXCEL在线学习网站,助您轻松办公!

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

2020年03月21日 19:57 发布来源:Excel学习网

 有时候,你需要将几十个工作簿中的内容,快速汇总至合并至一个工作簿,如果手动一个复制粘贴,那心里有苦说不出。。。

今天将大家用VBA一键合并,只需要几秒种,为了测试这段代码,我们新建了4个工作簿在文件夹中,数据都是模拟的,做试验

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

一键合并代码操作如下所示:

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

我们看原始表格数据,其中,第1个工作簿有点特殊,这个工作簿中,有两个工作表,第1个工作表的内容是:

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

第2个工作表的内容是:

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

第2,3,4个工作簿中都是仅有1个工作表,如下所示:

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

通过代码,我们一键可以合并,得到结果,这个汇总的结果有两个特点

1、最后一列,还会显示这些数据的来源是哪个工作簿,哪个表名的。

2、原始数据中每一行的标题自动取消,只保留了一个标题。

如下所示:

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

在Excel菜单栏中,点击开发工具,打开VBA,输入如下代码:

Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!

 

其中代码如下所示:

Sub 合并目录所有工作簿全部工作表()

Dim MP, MN, AW, Wbn, wn

Dim Wb As Workbook

Dim i, a, b, d, c, e

Application.ScreenUpdating = False

MP = ActiveWorkbook.Path

MN = Dir(MP & "\" & "*.xls")

AW = ActiveWorkbook.Name

Num = 0

e = 1

Do While MN <> ""

If MN <> AW Then

Set Wb = Workbooks.Open(MP & "\" & MN)

a = a + 1

With Workbooks(1).ActiveSheet

For i = 1 To Sheets.Count

If Sheets(i).Range("a1") <> "" Then

Wb.Sheets(i).Range("a1").Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)

d = Wb.Sheets(i).UsedRange.Columns.Count

c = Wb.Sheets(i).UsedRange.Rows.Count - 1

wn = Wb.Sheets(i).Name

.Cells(1, d + 1) = "表名"

.Cells(e + 1, d + 1).Resize(c, 1) = MN & wn

e = e + c

Wb.Sheets(i).Range("a2").Resize(c,d).Copy .Cells(.Range("a1048576").End(xlUp).Row + 1, 1)

End If

Next

Wbn = Wbn & Chr(13) & Wb.Name

Wb.Close False

End With

End If

MN = Dir

Loop

Range("a1").Select

Application.ScreenUpdating = True

MsgBox "共合并了" & a & "个工作薄下全部工作表。如下:" & Chr(13) & Wbn, vbInformation, "提示"

End Sub

原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12161.html
分享到:
网站地图 | XML地图 | 免责声明 | 关于我们 | Excel学习网:优秀的EXCEL在线学习和资源分享网站。
版权所有: CopyRight © 2013-2018 www.excelcn.com All Rights Reserved.
豫ICP备12002644号