前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3分钟写个VBA:Excel工作簿所有子表数据一键汇总

3分钟写个VBA:Excel工作簿所有子表数据一键汇总

作者头像
朱小五
发布2021-12-09 16:06:49
2.7K0
发布2021-12-09 16:06:49
举报

今天同事问我,他要汇总一个工作簿里面十几张子表里面的数据到同工作簿的汇总表里面,怎么操作比较快?然后我就想到了VBA,3分钟给他写(录)了一个宏,一键完成所有数据汇总。

所以今天我就分享这个小技巧,不需要VBA脚本很熟悉的盆友也可以上手哦,非常简单易行。

1、首先,看看需求,有下面一张Excel工作簿,需要把除了【数据汇总】以外的三张子表里面的内容(可以更多的子表,但是这里只是举例三张子表),汇总到【数据汇总】,其中子表的数据格式是一样的,就是说表头是一样的。

△三张子表

△【数据汇总】sheet

2、接着,点击开发工具,录制宏,填写宏名,当然也可以默认,再点击确定。

△开发工具

△录制宏

3、接着,选择【Sheet1】表里面的内容复制,粘贴到【数据汇总】工作表。和平常的复制粘贴操作一样,目的就是录制你的操作过程,然后转换成代码,再利用代码自动执行。

4、然后,点击【停止录制按钮】,在【数据汇总】工作表点击鼠标右键,点击【查看代码】。

点击【模块3】,就可以看到我们之前录制的操作生成的代码了,这里是复制了【Sheet1】,【Sheet2】表里面的数据到数据汇总表里面的代码。

5、然后,优化脚本,写个循环的代码。

但是优化完好像和录制的代码毫不相关。。。。其实录制的主要目的就是看着录制的代码可以想起代码的语句、逻辑等是怎么样的,因为不常用,所以我记不住关键语句o( ̄︶ ̄)o;

Sub 数据汇总()
'
' 数据汇总 宏

 Dim sht As Worksheet

 With Sheets("数据汇总")
  For Each sht In Worksheets
    If sht.Name <> "数据汇总" Then '将各子表复制粘贴到Sheets("数据汇总")表里面
        sht.Range("A2:F" & sht.Range("a65536").End(xlUp).Row).Copy  '将需要被复制的各个子表的表头以下有数据的位置复制
        Range("A" & Range("a65536").End(xlUp).Row + 1).PasteSpecial  '粘贴到数据汇总表中有数据的行的下一个空白单元格的位置
       
    End If
  Next
  Range("I1").Select
 End With

End Sub

6、最后,点击保存脚本之后,就可以执行。如何执行代码?这里有两个方法。

第一种方法,回到工作簿,在开发工具,点击宏,选择对应的宏的名称,点击执行。

第二种方法,在开发工具,点击插入,选择第一个表单控件,在你想要放置的位置画个框,然后跳出弹窗。

在弹窗选择你的宏名,点击确认。

在按钮点击鼠标右键,编辑文字,就可以重命名你的执行按钮,我这里命名为宏的名字。

最后点击【数据汇总】按钮,数据就自动汇总好了。

运行动图

如果大家想下载这个Excel数据文件,可以打开以下链接👇

链接:https://pan.baidu.com/s/1jVg1OwLQAcwCFUQolbDRUQ

提取码:d4y6

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 凹凸数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档