Sub 分拆() Dim ArrYS, MySht As Worksheet, i& Dim ZD AsInteger Dim bkNew As Workbook Dim bkOld As Workbook Dim strTemp AsString Dim d AsObject 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 ToUBound(ArrYS, 1) IfNot 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 EndIf 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 '保存工作簿 ForEach 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 EndIf Next Application.ScreenUpdating = True EndSub
Sub 分拆() Dim ArrYS, MySht As Worksheet, i& Dim ZD AsInteger Dim bkNew As Workbook Dim bkOld As Workbook Dim strTemp AsString Dim d AsObject 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 ToUBound(ArrYS, 1) IfNot 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 EndIf 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 '保存工作簿 ForEach 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 EndIf Next Application.ScreenUpdating = True EndSub