Excel精英培训网

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

[已解决]将不同班的内容输出为以班名为文件名的工作薄

[复制链接]
发表于 2010-2-8 10:29 | 显示全部楼层 |阅读模式

 

请教
如何做一个,将不同班的内容输出为以班名为文件名的工作薄,如与高一10班的相关的所有行,放入名为高一10班的工作薄中,谢谢
rHL0Tjzi.rar (20.18 KB, 下载次数: 20)
发表于 2010-2-8 11:11 | 显示全部楼层    本楼为最佳答案   

楼主试试看


Sub 分拆()
    Dim ArrYS, MySht As Worksheet, i&
    Dim ZD As Integer
    Dim bkNew As Workbook
    Dim bkOld As Workbook
    Dim strTemp As String
    Dim d As Object
    Set bkOld = ThisWorkbook
    Set d = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False
    ArrYS = Sheets("成绩单").Range("A2:N" & Sheets("成绩单").[A65536].End(xlUp).Row)
    ZD = 4
    '拆分工作表
    For i = 1 To UBound(ArrYS, 1)
        If Not d.exists(ArrYS(i, ZD)) Then
            d(ArrYS(i, ZD)) = i
            ThisWorkbook.Sheets.Add.Name = ArrYS(i, ZD)
            Sheets("成绩单").Range("A1:N1").Copy
            Sheets(ArrYS(i, ZD)).Range("A1").PasteSpecial
        End If
        Sheets("成绩单").Range("A" & (i + 1) & ":N" & (i + 1)).Copy
        Sheets(ArrYS(i, ZD)).Range("A" & (Sheets(ArrYS(i, ZD)).Range("a65536").End(xlUp).Row + 1)).PasteSpecial
    Next i
    '保存工作簿
    For Each MySht In bkOld.Worksheets
        If MySht.Name <> "成绩单" And d.exists(MySht.Name) Then
            strTemp = MySht.Name
            Set bkNew = Workbooks.Add
            MySht.Move before:=bkNew.Sheets(1)
            bkNew.SaveAs Filename:=bkOld.Path & "\" & strTemp & ".xls"
            bkNew.Close False
        End If
    Next
    Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

 楼主| 发表于 2010-2-8 11:41 | 显示全部楼层
回复

使用道具 举报

发表于 2010-2-8 11:43 | 显示全部楼层

amulee 哥们你很牛啊

回复

使用道具 举报

发表于 2010-2-8 16:56 | 显示全部楼层

膜拜amulee
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 07:07 , Processed in 0.290703 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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