首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA合并工作表

VBA合并工作表(WorkSheet)

如果一个Excel工作簿文件中含有多个工作表,而且每个工作表中的数据结构基本相同,现在想把所有的工作表的数据合并到一个工作表中进行分析,该怎么办呢?

VBA可以解决这个问题。

首先在工作簿文件中插入一个名为“汇总”的空白工作表,然后按快捷键“ALT+F11”进入VBA开发环境,在左侧单击鼠标右键,选择“插入”——“模块”,在模块中输入如下VBA程序。

首先,定义一个Excel工作表类型的对象变量objSumSht。提前定义变量并明确指定变量类型的好处是,可以充分利用VBA开发环境所提供的该对象的属性和方法的自动提示功能。

接着,将工作表对象ThisWorkbook.Worksheets("汇总")赋值给对象变量objSumSht。此后就可以在程序中使用对象变量objSumSht代替工作表对象ThisWorkbook.Worksheets("汇总")了。

之后,是一个循环处理结构,用来处理ThisWorkbook中的每一个Worksheet,在处理每一个Worksheet时,需要判断该Worksheet的Name是不是objSumSht.Name(即“汇总”工作表)相同,只有当前工作表不是“汇总”工作表,才执行下面的数据合并操作。

再接着,表示工作表的最后一行objSumSht.Rows.Count(如果你正在使用的是Excel 2007或Excel 2010,那么objSumSht.Rows.Count的计算结果是1048576),End(xlUp).Row表示从工作表第1列的最后一行向上查找,直到第一次看到“不为空的单元格”为止时所在的行号,然后把这个行号加上1,表示下一次粘贴数据时的行号位置,最后把这个行号赋值给变量pasteRow。

最后,把正在处理的工作表的“使用区域(objWs.UsedRange)”,也就是含有数据的区域,复制并粘贴到“汇总”工作表objSumSht,粘贴的起始位置是.Cells(pasteRow, 1),也就是“汇总”工作表的数据区域下方的第1个空白行的第1个单元格处。

现在,把光标置于程序中的任意一行,按F5键执行程序,程序的执行结果如图所示。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190812A0LZX700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券