VBA之多工作簿作为单个Sheet(命名为原工作簿名)复制到一个另工作簿

比如文件夹下有test.xlsm(存放宏的文件)、a.xlsx(Sheet1)、b.xlsx(Sheet1)以及x.xlsx(Sheet xxx为第2个Sheet)
我们的任务是将a.xlsx的Sheet1和b.xlsx的Sheet1复制到x.xlsx的Sheet xxx之前

确保启动时光标在test.xlsm中

Dim i As Integer
    For i = 1 To Workbooks.Count
    Cells(i, 1) = Workbooks(i).name
    Next
    Cells.Replace What:="test.xlsm", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="x.xlsx", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False          
    Columns("A:A").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select

此时可以发现test.xlsm中A1、A2单元格中为a.xlsx和b.xlsx的文件名

Dim j As Integer
    Selection.End(xlDown).Select
    j = Selection.Row        'j sheet
    Dim x As Integer
    For x = 1 To j:
        Windows("test.xlsm").Activate
        Dim Sname As String
        Sname = Range("A" & x).Value
        Workbooks(Sname).Activate 
        With Workbooks(Sname)
                .Sheets(1).name = Mid(Sname, 1, Len(Sname) - 5) '更改工作表名称
        End With
        Sheets(1).Copy Before:=Workbooks("x.xlsx").Sheets(2)  
    Next x
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值