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

Excel通用VBA代码一键合并多个工作表至总表!

2020年03月26日 20:12 发布来源:Excel学习网

 一个工作簿中会有很多个相同格式,标题行内容和顺序都一样的工作表,我们想把这个工作表中的数据全部放至一个总表数据中。

Excel通用VBA代码一键合并多个工作表至总表!

 

图片上示例是3个工作表,实际工作中可能是几十个,如果一个一个复制粘贴至总表里面,耗费的时间很长,并且容易出错,今天教大家用一段通用的VBA代码来实现一键快速合并,效果如下所示:

Excel通用VBA代码一键合并多个工作表至总表!

 

只需要点击一下多表合并的按纽,后面所有工作表,会按顺序全部放至汇总表格中。

现在是每个工作表中的标题是4个项目,如果是更多项目,同样的可以进行合并,例如我们在英雄1表格中添加一列

Excel通用VBA代码一键合并多个工作表至总表!

 

用这个代码,同样的可以进行快速合并,只需要在汇总的表格中添加一个标题第五列,然后点击多表合并按纽即可

Excel通用VBA代码一键合并多个工作表至总表!

 

同样的,如果是再添加1个工作表,在英雄1后面插入了一个sheet2表格,里面输入一条同样的数据,如下所示:

Excel通用VBA代码一键合并多个工作表至总表!

 

同样的,只需要点击多表合并按纽便可完成,如下所示:

Excel通用VBA代码一键合并多个工作表至总表!

 

那么这个VBA代码是什么,如下所示:

Excel通用VBA代码一键合并多个工作表至总表!

 

Sub 多表合并()

Dim arr()

a = Range("a1").End(xlToRight).Column

For Each sh In Sheets

If sh.Name <> "汇总" Then

arr1 = sh.Range("a2").Resize(sh.UsedRange.Rows.Count - 1, a)

act = act + UBound(arr1)

ReDim Preserve arr(1 To a, 1 To act) '

For j = 1 To UBound(arr1)

n = n + 1

For i = 1 To a

arr(i, n) = arr1(j, i)

Next i

Next j

End If

Next

Sheets("汇总").[a2].Resize(n, a) = Application.Transpose(arr)

End Sub

这段代码直接保存即可,有了这段代码,我们在VBA中插入一个模块,将代码写入进去,插入一个按纽,绑定代码,即可实现,绑定代码的操作过程如下所示:

Excel通用VBA代码一键合并多个工作表至总表!

 

好,你学会了吗?

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