Excel合并不同工作簿的表到同一个工作簿

此示例是将不同路径下的工作簿的第一个工作表合并到同一个工作簿的不同sheet,按照添加顺序把工作表合并进去。 如果要合并多个或者是其他情况可参照更改下即可。

主要分两块内容:
1.第一块,代码块
2.第二块,演示

一、代码块

Sub NewTest()
Dim book1 As String, book2 As String, flag1 As String, flag2 As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
arr = [a1].CurrentRegion
' flag1 和flag2用于判断对应文件是否存在,存在才进行一步处理,ThisWorkbook.Path返回当前执行VBA
'代码的工作簿的路径,可以直接指定路径,无论是读取还是存储皆可.
For Each i In arr
flag1 = Dir(ThisWorkbook.Path & "\test\testnew2\" & i & "-未超时.xlsx")
flag2 = Dir(ThisWorkbook.Path & "\test\testnew\" & i & "-超时.xlsx")

If flag1 <> "" Then
Workbooks.Open (ThisWorkbook.Path & "\test\testnew2\" & i & "-未超时.xlsx")
book1 = ActiveWorkbook.Name
End If

If flag2 <> "" Then
Workbooks.Open (ThisWorkbook.Path & "\test\testnew\" & i & "-超时.xlsx")
book2 = ActiveWorkbook.Name
End If

If flag1 <> "" Or flag2 <> "" Then
Workbooks.Add

If flag1 <> "" And flag2 = "" Then
Workbooks(book1).Sheets(1).Copy Before:=ActiveWorkbook.ActiveSheet
End If
If flag2 <> "" And flag1 = "" Then
Workbooks(book2).Sheets(1).Copy Before:=ActiveWorkbook.ActiveSheet
End If

If flag1 <> "" And flag2 <> "" Then
Workbooks(book1).Sheets(1).Copy Before:=ActiveWorkbook.ActiveSheet
Workbooks(book2).Sheets(1).Copy After:=ActiveWorkbook.ActiveSheet
End If
With ActiveWorkbook
        .SaveAs Filename:=ThisWorkbook.Path & "\test\" & i & ".xlsx"
        .Close SaveChanges:=False
End With
End If

If flag1 <> "" Then
Workbooks(book1).Close SaveChanges:=False
End If

If flag2 <> "" Then
Workbooks(book2).Close SaveChanges:=False
End If

Next

Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "执行完毕"
End Sub

说明:路径大家可以直接指定绝对路径,因为怕有些人分不清ThisWorkbook.Path代表当前执行VBA脚本的工作簿路径的情形。
合并工作簿的工作表的引用大家可参照实际情况替换索引或者直接使用
表名进行索引。

二、操作演示

  1. 两个待合并文件夹,文件都放在里面:
    在这里插入图片描述
  2. 新合并的路径将在test目录生成
  3. 此表里面存放的是需要处理的表的名称,代码里通过[a1].CurrentRegion引用,引用后进行迭代
    3
    重点还是参照官方教程,特贴链接如下:
    ExcelVBA语法
    这是VBA基础语法
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值