Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 12821|回复: 5

[分享] 把多个Excel文件合并到一个Excel文件的多个工作表(Sheet)里

[复制链接]
发表于 2012-3-29 21:31 | 显示全部楼层 |阅读模式
实现的功能是把多个Excel文件的第一个工作表(Sheet)合并到一个Excel文件的多个工作表里,并且新工作表的名称等于原Excel文件的文件名。开发环境Excel2007,但是Excel2003应该也能用,Excel2000似乎不能用。代码如下:

'功能:把多个工作簿的第一个工作表合并到一个工作簿的多个工作表,新工作表的名称等于原工作簿的名称
Sub Books2Sheets()
    '定义对话框变量
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    '新建一个工作簿
    Dim newwb As Workbook
    Set newwb = Workbooks.Add

    With fd
        If .Show = -1 Then
            '定义单个文件变量
            Dim vrtSelectedItem As Variant

            '定义循环变量
            Dim i As Integer
            i = 1

            '开始文件检索
            For Each vrtSelectedItem In .SelectedItems
                '打开被合并工作簿
                Dim tempwb As Workbook
                Set tempwb = Workbooks.Open(vrtSelectedItem)

                '复制工作表
                tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)

                '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx
                newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")

                '关闭被合并工作簿
                tempwb.Close SaveChanges:=False

                i = i + 1
            Next vrtSelectedItem
        End If
    End With

    Set fd = Nothing
End Sub





发表于 2012-3-29 21:44 | 显示全部楼层
额。。这是用什么代码实现的???
回复

使用道具 举报

发表于 2012-3-29 21:56 | 显示全部楼层
好东西,不知道在哪里见过类似的,先收藏了
回复

使用道具 举报

发表于 2015-6-3 19:51 | 显示全部楼层
这个好好用啊,谢谢哈
回复

使用道具 举报

发表于 2015-10-26 16:13 | 显示全部楼层
高手!!!
非常感谢!!!
效果非常实用。谢谢!
回复

使用道具 举报

发表于 2017-2-27 11:50 | 显示全部楼层
怎么用啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 13:46 , Processed in 0.228148 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表