Excel宏批量合并同类文件为单文件

需积分: 50 25 下载量 176 浏览量 更新于2024-09-07 收藏 2KB TXT 举报
本文档主要介绍了如何使用Excel的宏命令,结合Visual Basic for Applications (VBA) 语言,实现批量合并多个格式相同的Excel文件到一个单一的工作簿中。以下步骤详细解释了如何编写和执行这段代码: 1. 宏函数`Sub combine()`:该宏的目的是让用户选择一个包含多个Excel文件的文件夹,并对其中所有扩展名为".xls"和".xlsx"的文件进行合并。它首先调用`ChooseFolder()`函数来获取用户选定的文件夹路径。然后,通过`combineFiles(folder, "xls")`和`combineFiles(folder, "xlsx")`递归地合并两种格式的文件。 2. `Function combineFiles(folder, appendix)`: 这个函数是核心部分,负责遍历指定文件夹中的文件。它接受两个参数:文件夹路径和文件扩展名。函数内部,通过`MyFile=Dir(folder&"\*."&appendix)`获取文件夹中所有匹配扩展名的文件名。接着,它使用`Do...While`循环逐个处理文件,通过`CopyFile`函数将文件中的数据复制到目标工作簿中。`CopyFile`函数会检查源文件的起始行(srcStartLine)是否小于或等于最后一行(rc),如果满足条件,则复制数据并更新计数器。 3. `Function CopyFile(filename, srcStartLine, dstStartLine)`: 这个辅助函数用于实际的文件复制操作。它首先检查要打开的文件是否与当前工作簿相同,如果是则直接退出。然后,它打开指定的文件,获取第一个工作表,并找到最后一行。如果源起始行在可复制范围内,就将那一行及其之后的数据复制到目标工作簿的指定位置,并返回复制的行数。 4. `Function ChooseFolder()`: 用户界面函数,利用`Application.FileDialog`对话框让用户提供文件夹选择。当用户选择文件夹后,返回选定的路径。 总结来说,这个VBA脚本提供了一个自动化工具,使得在IT环境中,能够快速、批量地合并Excel文件,提高了工作效率。使用时,用户只需调用`Subcombine()`,然后选择包含多个Excel文件的文件夹即可完成合并。