VBA实现批量合并Excel工作簿教程

5星 · 超过95%的资源 需积分: 50 120 下载量 42 浏览量 更新于2024-10-12 3 收藏 994B TXT 举报
"批量合并多个工作簿为一个工作表" 在Excel中,有时我们需要将多个包含数据的工作簿整合到一个工作表中,以便于管理和分析。这个任务可以通过使用VBA(Visual Basic for Applications)宏来自动化完成。VBA是Excel内置的一种编程语言,允许用户自定义功能和操作。以下是一个简单的VBA宏示例,用于批量合并同一目录下的多个Excel工作簿到当前活动工作簿。 首先,宏开始时会禁用屏幕更新,以提高处理速度并减少屏幕闪烁。这通过`Application.ScreenUpdating=False`实现。 `MyPath`变量获取当前活动工作簿的路径,`MyName`则使用`Dir`函数查找该路径下所有`.xls`(Excel 97-2003 工作簿)文件的名称。`AWbName`存储当前活动工作簿的名字,以确保不将其包括在合并过程中。 `Num`变量用来计数被合并的工作簿数量,初始化为0。`Wb`是工作簿对象,`WbNAsString`用来存储每个合并工作簿的名称,而`G`作为循环变量。 接着,宏进入一个`Do While`循环,检查`MyName`是否为空。如果找到一个非空的工作簿名称且不等于当前活动工作簿,那么它将打开这个工作簿,并逐个复制其工作表的数据到当前活动工作簿的第一张工作表。复制数据时,使用了`UsedRange.Copy`方法,将源工作表的使用过(含有数据)的区域复制到目标工作表的下一行。 在循环内,`WbN`被更新,添加每个合并工作簿的名称,用回车符分隔,便于在消息框中显示。 当所有工作簿都处理完毕后,恢复屏幕更新,`Application.ScreenUpdating=True`,并弹出一个消息框,显示合并的工作簿数量和名称列表,使用`MsgBox`函数实现。 这个VBA宏提供了批量合并Excel文件的强大功能,大大提高了工作效率,尤其适用于需要定期整合大量数据的情况。只需根据实际工作目录和文件格式调整`MyPath`和文件扩展名,就可以在任何需要的地方使用这个宏。