|
Option Explicit
Sub TEST6()
Dim ar, br, cr, i&, j&, r&, n&, dic As Object, vKey, strFileName$
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set dic = CreateObject("Scripting.Dictionary")
ar = [A1].CurrentRegion
For i = 2 To UBound(ar)
vKey = ar(i, 1)
dic(vKey) = dic(vKey) & "," & i
cr = Split(dic(vKey), ",")
n = IIf(UBound(cr) > n, UBound(cr), n)
Next i
For i = 1 To n
br = ar: r = 1
With Workbooks.Add
strFileName = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1) & "-" & i
For Each vKey In dic.keys
cr = Split(dic(vKey), ",")
If UBound(cr) >= i Then
r = r + 1
For j = 1 To UBound(ar, 2)
br(r, j) = ar(cr(i), j)
Next j
End If
Next
With .Sheets(1).[A1].Resize(r, UBound(br, 2))
.Value = ar
.Borders.LineStyle = xlContinuous
.EntireColumn.AutoFit
.EntireRow.AutoFit
End With
.SaveAs strFileName
.Close
End With
Next i
Set dic = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Beep
End Sub
|
评分
-
1
查看全部评分
-
|