如何遍历目录中的工作簿,并将数据复制到 Excel 的主工作表中?

作者:互联网

2026-04-14

Excel

假设您有一个文件夹中包含多个 Excel 工作簿,需要遍历所有这些文件,并从每个工作簿中相同名称的工作表(例如 Sheet 1)的特定区域复制数据,汇总到一个主工作表中。本指南为您提供了一套详细的 VBA 解决方案,助您在 Excel 中高效简化这一流程。

使用 VBA 代码遍历目录中的工作簿并将数据复制到主工作表

使用 VBA 代码遍历目录中的文件并将数据复制到主工作表

如果您希望将特定文件夹中所有工作簿的 Sheet 1 工作表 A1:D4 区域的数据复制并粘贴到主工作表中,请按以下步骤操作。

1. 在您要创建主工作表的工作簿中,按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 在 Microsoft Visual Basic for Applications 窗口中,单击插入> 模块,然后将下方的 VBA 代码复制到代码窗口中。

VBA 代码:遍历文件夹中的文件并将数据复制到主工作表

Sub Merge2MultiSheets()
    Dim xRg As Range
    Dim xSelItem As Variant
    Dim xFileDlg As FileDialog
    Dim xFileName, xSheetName, xRgStr As String
    Dim xBook, xWorkBook As Workbook
    Dim xSheet As Worksheet
    On Error Resume Next
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    xSheetName = "Sheet1"
    xRgStr = "A1:D4"
    Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    With xFileDlg
        If .Show = -1 Then
            xSelItem = .SelectedItems.Item(1)
            Set xWorkBook = ThisWorkbook
            Set xSheet = xWorkBook.Sheets("New Sheet")
            If xSheet Is Nothing Then
                xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
                Set xSheet = xWorkBook.Sheets("New Sheet")
            End If
            xFileName = Dir(xSelItem & "*.xlsx", vbNormal)
            If xFileName = "" Then Exit Sub
            Do Until xFileName = ""
               Set xBook = Workbooks.Open(xSelItem & "" & xFileName)
                Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)
                xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)
                xFileName = Dir()
                xBook.Close
            Loop
        End If
    End With
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

注意

1)。在代码中,“A1:D4”和“Sheet 1”表示将从所有 Sheet 1 的 A1:D4 区域复制数据到主工作表。而“New Sheet”是新建主工作表的名称。2)。特定文件夹中的 Excel 文件不应处于打开状态。

3. 按下 F5 键即可运行代码。

4. 在弹出的浏览窗口中,选择包含您要遍历的文件的文件夹,然后单击确定按钮。参见截图:

Excel 中用于选择包含待循环处理文件的文件夹的“浏览”对话框截图

随后,系统将在当前工作簿末尾创建一个名为“New Sheet”的主工作表,并将所选文件夹中所有 Sheet 1 工作表的 A1:D4 区域数据汇总至该工作表中。

相关标签:

Excel技巧