文章目录
引言
有这么一批表格,表头信息一致,分别存放在不同的表单中,不方便查看,现在的需求就是把这些表格合以首尾拼接的方式并在一起,另外再新创建一个“汇总”表单,将拼接后的表格显示在“汇总”表单中。
举例说明一下,如下图目前有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对象了,可以整块


4674

被折叠的 条评论
为什么被折叠?



