【Excel VBA入门】批量数据操作:不同表单中数据2秒快速合并

文章目录

         引言

问题的分析与设计

自动创建Sheet表单功能实现

遍历全部表单取数功能实现

程序入口设计

代码实现

 XFD标识

通过Cells对象获取最大数据行数

表达式太长换行

Range.Copy

运行结果

回顾总结


引言

有这么一批表格,表头信息一致,分别存放在不同的表单中,不方便查看,现在的需求就是把这些表格合以首尾拼接的方式并在一起,另外再新创建一个“汇总”表单,将拼接后的表格显示在“汇总”表单中。

举例说明一下,如下图目前有12个表单:1月~12月,分别存放着一张表格,所有表格都有4个字段(下单时间、商品、规格、价格),现在需要再重新创建一个名为“合并汇总”的新表单,将12个月的数据合并到一起,输出到“合并汇总”表单中

当然实际情况不止12张表,可能更多,表格越多越能显示出VBA编程的优势,那么来看一下具体的实现方式吧

问题的分析与设计

自动创建Sheet表单功能实现

VBA自带了创建表单的功能,即使用WorkSheet对象的Worksheets.Add方法创建新的工作表单,而且还可以指定添加工作表的位置

  • 在指定工作表的前面添加,使用到的关键字就是Before,具体格式如下,含义就是在第3张表单的前面添加一张新的表单,默认工作表的名字以Sheet+数字的形式显示ThisWorkbook.Worksheets.Add Before:=Worksheets(3)
  • 在指定工作表的后面添加,使用到的关键字是After,具体的格式如下,含义就是在第7张表单的后面添加一张新的表单,默认工作表的名字以Sheet+数字的形式显示ThisWorkbook.Worksheets.Add after:=Worksheets(7)

如果不想使用默认的名字,还可以在添加表单的过程中命名表单名字,使用如下语句:ThisWorkbook.Worksheets.Add(Before:=Worksheets(1)).Name = "添加到第一个工作表前面",代码执行后,就会在第一个表单前面添加一个新的表单,新表单的名字就是“添加到第一个工作表前面”,显示的结果如下图:

遍历全部表单取数功能实现

使用了一个For循环来完成全部表单数据的读取任务,考虑到每张表单中都有4列数据,而且表头也是一样的,因此选取的是整个数据块(去除表头)取出来首尾拼接。对于数据块的操作首先的就是Range对象了,可以整块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wei1019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值