excel快速汇总同一工作簿多个工作表的列数据
1、比如图中的数据,即需要将分表的数据汇总到总表中。
2、找到开发工具--visual basic,或者按快捷键ALT+F11,打开vba编辑器。
3、选中模块,点击右键新增一个模块;
4、双击新增模块,复制以下代码。
Sub zl_huizongdata()
Columns("B:XX").Clear
'第一步是先清空汇总表的数据,这里是从第B列开始清理到XX列,可以自己修改。
Dim st As Worksheet, rng As Range, rrow As Integer
'定义一些需要用到的变量
For Each st In Worksheets '循环开始,遍历所有的工作表
If st.Name <> ActiveSheet.Name Then
' 若遍历的当前工作表不是当前的活动工作表
Set rng = Range("XY1").End(xlToLeft).Offset(0, 1)
'每次循环就动态定位需要拷贝数据的汇总表的区域,即获得第一行空的单元格
ccol = st.Range("A1").CurrentRegion.Columns.Count - 1
'获得每个工作表中的数据记录数,即列数,同时需要减去表头的列数,这里是减掉1列。
st.Range("B1").Resize(4, ccol).Copy rng
'将数据扩展ccol行,4行拷贝到数据,并粘贴到汇总表
End If
Next
End Sub
5、注释:
Columns("B:XX").Clear
'第一步是先清空汇总表的数据,这里是从第B列开始清理到XX列,可以自己修改。
Set rng = Range("XY1").End(xlToLeft).Offset(0, 1)
'每次循环就动态定位需要拷贝数据的汇总表的区域,即获得第一行空的单元格
6、关闭编辑器返回到汇总表
7、在汇总工作表上建立一个按钮,将宏命令与他关联,方便以后使用。
关于按钮和宏命令的关联方法,可以看我的经验贴
8、点击按钮,执行vb代码后 ,就看到数据已经汇总过来了。