+ -
当前位置:首页 → 问答吧 → 求助高手帮忙解决多工作薄不同名称合并另一个工作薄的问题

求助高手帮忙解决多工作薄不同名称合并另一个工作薄的问题

时间:2011-08-03

来源:互联网

在工作中遇到这样一个这样问题,数据从系统导出后形成多个工作薄且名称不一致,类似40669.xls ;40670.xls;40671.xls....等等,这些工作簿里的表页只有一张且名称与工作薄名称一致,我目前只能同时打开汇总工作薄,打开系统导出工作薄后通过一一点右键 “移动或复制工作表”选项来汇入到汇总工作薄中去,请问高手是否有其他简便方法解决!我用的是2007版,示例如下: 58668.rar (26.87 KB)
58668.rar (26.87 KB)
下载次数: 1
2011-8-3 22:14

作者: www1123456com   发布时间: 2011-08-03

论坛里搜索一下,里面例子很多的。。。。

作者: jiminyanyan   发布时间: 2011-08-03

"我目前只能同时打开汇总工作薄"---------不太明白这句话。
你只能打开一个工作薄吗?

作者: lotteryman   发布时间: 2011-08-03

引用:
原帖由 www1123456com 于 2011-8-3 22:14 发表
在工作中遇到这样一个这样问题,数据从系统导出后形成多个工作薄且名称不一致,类似40669.xls ;40670.xls;40671.xls....等等,这些工作簿里的表页只有一张且名称与工作薄名称一致,我目前只能同时打开汇总工作薄, ...
要求复制等于工作簿名的工作表?如果是:
Sub Macro1()
    Dim MyPath$, MyName$, sh As Worksheet
    MyPath = ThisWorkbook.Path & "\系统导出文件\"
    MyName = Dir(MyPath & "*.xlsx")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each sh In Sheets
        If sh.Name <> "汇总" Then sh.Delete
    Next
    On Error Resume Next
    Do While MyName <> ""
        With GetObject(MyPath & MyName)
            Set sh = .Sheets(Split(MyName, ".")(0))
            If Not sh Is Nothing Then
                sh.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
                Set sh = Nothing
            End If
            .Close False
        End With
        MyName = Dir
    Loop
    Sheets(1).Activate
    Application.ScreenUpdating = True
End Sub

[ 本帖最后由 zhaogang1960 于 2011-8-3 22:57 编辑 ]

作者: zhaogang1960   发布时间: 2011-08-03

好热心的版主呀!!

作者: lotteryman   发布时间: 2011-08-03

相关阅读 更多