VBA-将文件夹中多个相同格式的workbook数据合并到一个workbook中_henry_dx_新浪博客

本文介绍了一种使用VBA宏来合并多个Excel文件的方法。通过循环遍历指定目录下的所有Excel文件,该脚本能够将这些文件的数据整合到一个新的工作簿中。此过程包括打开每个文件、读取数据并将其追加到目标工作簿。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'将文件夹中多个相同格式的workbook数据合并到一个workbook中
Sub HzwWb()
    Dim bt As Range, r As Long, c As Long
    r = 1                                                                   '表头行数
    c = 4                                                                   '表头列数
    Range(Cells(r + 1, "a"), Cells(1024576, c)).ClearContents               '清除汇总表中原数据
    Application.ScreenUpdating = False
    Dim filename As String, wb As Workbook, erow As Long, fn As String, arr As Variant
    filename = Dir(ThisWorkbook.Path & "\*.xls")
        Do While filename <> ""
            If filename <> ThisWorkbook.Name Then                               '判断文件是否是本工作簿
                erow = Range("a1").CurrentRegion.Rows.Count + 1            '取得汇总表中第一条空行行号
                fn = ThisWorkbook.Path & "\" & filename
                Set wb = GetObject(fn)                                                           '将fn代表的工作簿变量赋给wb
                Set sht = wb.Worksheets(1)                                       '汇总的是每个工作簿中的第一张工作表
                '将数据表中的记录保存在arr变量中                
                arr = sht.Range(sht.Cells(r + 1, "A"), sht.Cells(1024576, "B").End(xlUp).Offset(0, c - 1))   
               '将arr数据写入汇总表                
                Cells(erow, "A").Resize(UBound(arr, 1), UBound(arr, 2)) = arr                             
                wb.Close False
            End If
            filename = Dir                                                                 '用dir函数取得其他文件名,并赋给变量
        Loop
    Application.ScreenUpdating = True
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值