vb整合多个excel表格到一张_基于vb宏合并多个同表头Excel文件到一sheet中

在新模块中复制如下代码:

Option Explicit

Sub HzWb()

Dim bt As Range, r As Long, c As Long

r = 1    '1 是表头的行数

c = 2    '2是表头的列数

Dim wt As Worksheet

Set wt = ThisWorkbook.Worksheets(1)    '将汇总表赋给变量wt

wt.Rows(r + 1 & ":1048576").ClearContents  ' 清除汇总表中原表数据,只保留表头

Application.ScreenUpdating = False

Dim FileName As String, sht As Worksheet, wb As Workbook

Dim Erow As Long, fn As String, arr As Variant

FileName = Dir(ThisWorkbook.Path & "\*.xlsx")

Do While FileName <> ""

If FileName <> ThisWorkbook.Name Then        ' 判断文件是否是汇总数据的工作簿

Erow = wt.Range("A1").CurrentRegion.Rows.Count + 1     ' 取得汇总表中第一条空行行号

fn = ThisWorkbook.Path & "\" & FileName     '将第1个要汇总的工作簿名称赋给变量fn

Set wb = GetObject(fn)        ' 将变量fn 代表的工作簿对象赋给变量wb

Set sht = wb.Worksheets(1)    ' 将要汇总的工作表赋给变量sht

' 将工作表中要汇总的记录保存在数组arr里

arr = sht.Range(sht.Cells(r + 1, "A"), sht.Cells(1048576, "B").End(xlUp).Offset(0, c))

' 将数组arr 中的数据写入工作表

wt.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

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

zetachow晓代~

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值