Sub t() Application.ScreenUpdating = False Dim i As Integer, j As Integer, k As Integer, l As Integer Dim arr, arr1, arr2 Dim d As Object Set d = CreateObject("scripting.dictionary") With Sheet1 arr = .Range("A1:L" & .[b65536].End(xlUp).Row) End With For i = 2 To UBound(arr) d(arr(i, 2)) = "" Next arr1 = d.keys ReDim arr2(1 To UBound(arr), 1 To UBound(arr, 2)) k = 1 For i = 0 To UBound(arr1) ReDim arr2(1 To UBound(arr), 1 To UBound(arr, 2)) For l = 1 To UBound(arr, 2) arr2(1, l) = arr(1, l) Next For j = 2 To UBound(arr) If arr(j, 2) = arr1(i) Then k = k + 1 For l = 1 To UBound(arr, 2) arr2(k, l) = arr(j, l) Next End If Next k = 1 Sheets.Add With ActiveSheet .Name = arr1(i) .[a1].Resize(UBound(arr), UBound(arr, 2)) = arr2 End With Next Set d = Nothing Application.ScreenUpdating = True End Sub
[此贴子已经被作者于2010-3-15 18:35:17编辑过] |