700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 3分钟写个VBA:Excel工作簿所有子表数据一键汇总

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

时间:2021-04-20 00:21:37

相关推荐

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

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

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

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

△三张子表
△【数据汇总】sheet

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

△开发工具
△录制宏

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

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

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

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

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

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

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

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

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

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

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

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

运行动图

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

链接:/s/1jVg1OwLQAcwCFUQolbDRUQ

提取码:d4y6

一天介绍一本书(凹凸数据)

白话聊Excel函数应用100例:函数是Excel之魂,没有函数,Excel只是一个普通的记录数据的表格。本书通过100个案例讲解70个函数在工作中的使用,每一个函数都是层层递进、逐层讲解的,同时列举了当下常见的一些函数组合,讲述它们的“来龙去脉”。

点击这里,数据文章!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。