如何使用vba合并多个excel工作簿?

要合并多个 Excel 工作簿,您需要使用一些代码来选择要合并的文件,或者您可以引用特定路径位置并合并当前工作簿中的所有 Excel 文件。

VBA合并多个工作簿

您可以使用以下代码,该代码使用我在路径变量中提到的位置(我的系统桌面上的文件夹)。

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop

使用 VBA 合并 Excel 文件的步骤

  1. 打开 Visual Basic 编辑器(如果功能区上已有“开发人员”选项卡,请确保启用它)。
    open the visual basic editor
  2. 之后,从项目窗口(control + r)找到当前工作簿,然后将新模块插入其中。
    locate the current workbook
  3. 您将在模块中看到一个代码窗口(双击它),您需要在其中粘贴您拥有的代码(按原样)。
    code window in the module
  4. 从这里,您需要使用要合并的所有 Excel 文件所在的文件夹位置更改路径变量的值。
    change the value for the path variable
  5. 最后,运行代码,您将获得当前文件中工作簿中的所有工作表。

有用的链接:运行宏宏记录器Visual Basic 编辑器个人宏手册

此代码将逐个打开每个文件,并逐个复制每个工作表并将其粘贴到具有相同名称的当前文件中。这是相同的代码,但屏幕在开始时更新为 false 以在后端运行所有内容。

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop Application.ScreenUpdating = True End Sub

注意:如果您想了解如何将多个工作簿中的数据合并到一个表中,请务必查看本指南。

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注