以下是将多个Excel工作簿合并为一个工作表的VBA代码:

Sub MergeWorkbooks()
    '定义变量
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Dim folderPath As String
    Dim fileName As String
    Dim sheetName As String
    Dim i As Integer
    
    '打开文件夹对话框
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = '选择文件夹'
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub
        folderPath = .SelectedItems(1) & "\"
    End With
    
    '创建新工作簿和工作表
    Set wb = Workbooks.Add(xlWBATWorksheet)
    Set ws = wb.Worksheets(1)
    
    '循环读取文件夹中的所有工作簿
    fileName = Dir(folderPath & "*.xlsx")
    Do While fileName <> ""
        Set rng = Nothing
        '打开工作簿
        Set rng = Workbooks.Open(folderPath & fileName).Worksheets(1).UsedRange
        '获取工作表名称
        sheetName = Left(fileName, Len(fileName) - 5)
        '将数据复制到新工作表中
        lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        If lastRow > 1 Then lastRow = lastRow + 1
        ws.Range("A" & lastRow).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value
        '关闭工作簿
        Workbooks(fileName).Close False
        '获取下一个文件名
        fileName = Dir()
    Loop
    
    '保存新工作簿
    wb.SaveAs folderPath & "合并后的工作表.xlsx"
    wb.Close
    
    '提示合并完成
    MsgBox "合并完成"
    
End Sub

这段代码可以帮助你轻松地将多个Excel工作簿中的数据合并到一个新的工作表中。你可以通过修改代码中的文件夹路径和文件名来适应你的具体需求。

VBA代码:合并多个Excel工作簿为一个工作表

原文地址: https://www.cveoy.top/t/topic/mimh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录