Excel宏实现多表合并并区分数据来源

需积分: 13 2 下载量 42 浏览量 更新于2024-09-08 收藏 1KB TXT 举报
本文档介绍了如何使用VBA在Excel中实现多表合并,并且为每个数据集添加源表名称以方便区分数据来源。操作步骤如下: 1. **环境设置**: 在Excel中,用户首先需要通过ALT + F11快捷键进入宏编辑器,因为我们将编写VBA宏来执行合并操作。 2. **宏函数定义**: 宏名为`Sub archer()`,定义了几个变量,如`MyPath`, `MyName`, `AWbName`等,分别用于存储路径、文件名和当前活动工作簿的名字。此外,还有`Wb`(工作簿对象)、`sht`(工作表对象)、`lr`(行号)、`BOX`(字符串变量)等。 3. **遍历多个Excel文件**: 通过`Dir`函数获取指定路径下的所有`.xls`文件,然后逐一打开这些文件。当遍历到的文件名不等于当前活动工作簿时,程序会执行以下操作: - **插入表名列**:在每个工作表的首列(假设为A列)右侧插入新列,用`xlToRight`参数,将原表头的格式保留。 - **添加表名**:在新列的第一行写入工作簿的名称,之后填充所有行的表名。 - **格式化表头**:对新添加的表名列设置边框线样式为连续线。 4. **合并数据**: 将所有工作簿中的数据复制到活动工作簿的指定位置(默认B65536行之后),并保留原工作簿的名称信息。这里使用了嵌套循环,外层循环遍历合并的工作簿,内层循环复制每个工作表的已使用范围。 5. **关闭非活动工作簿**: 在完成数据合并后,关闭非活动工作簿,但不会保存更改。 6. **结束操作**: 最后,恢复屏幕更新状态,选择B1单元格作为合并后的数据区域的起始位置。 通过这个VBA宏,用户可以批量合并多个Excel表格,并通过表名标识数据的来源,这对于管理和分析大量数据时非常有用。然而,由于代码会复制表头,如果不需要表头,用户可以在合并后使用Excel的筛选功能或宏进行删除。