EXCEL VBA 跨表合并多个文件

'选择一个目录,将目录中的所有EXCEL文件导入当前工作表

'这些EXCEL文件最好格式能一样,这里是每个文件是同一个格式

 

Sub 批量()
Dim FD, str$, arr
Set FD = Application.FileDialog(msoFileDialogFolderPicker)
If FD.Show = -1 Then t = FD.SelectedItems(1) Else Exit Sub '如果没选择文件夹则退出
Application.ScreenUpdating = False
Cells.NumberFormatLocal = "@"
str = Dir(t & "\*.xl*") '查找格式为EXCEL的文件
While Len(str) > 0 '文件名不为空时
   Workbooks.Open (t & IIf(Right(t, 1) = "", "", "") & str) '打开工作簿
   
   With ActiveWorkbook.ActiveSheet
      .Range(.Cells(2, "l"), .Cells(.[a65536].End(3).Row, "l")) = "'" & Left(str, Len(str) - IIf(Right(str, 1) = "x", 5, 4))
      arr = .UsedRange
      Workbooks(str).Close False '关闭工作薄

      Kill (t & IIf(Right(t, 1) = "", "", "") & str) ’删除工作薄(如果不删除,省去这一步)

   End With
   
   With ActiveSheet
   rw = .[a65536].End(3).Row + 1
   .Cells(rw, 1).Resize(UBound(arr, 1), UBound(arr, 2)) = arr '将数据写入当前工作表
   End With
   str = Dir() '查找下一个文件
Wend
If [a1] = "" Then Rows(1).Delete ‘如果A1为空,删除第一行
Application.ScreenUpdating = True
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值