Sub 嵌套排序() 'by kagawa
Dim ar, sr, dic
Dim i&, j&, k&, m&, n&, r&, s$, s0$, s1$, s2$, t&, w$, z&
w = InputBox("确认编码分隔符", "按编码分级、并按采购量降序排序", ".")
ar = [a1].CurrentRegion
m = UBound(ar)
s0 = String(Len(CStr(m)), "0")
ReDim br(2 To m, 1 To 1)
For i = 2 To m
s = ar(i, 2)
sr = Split(s, ".")
t = UBound(sr): If t > z Then z = t
br(i, 1) = t
Next
[f2].Resize(m - 1) = br
[a1].Resize(m, 6).Sort [f2], 1, [d2], , 2, [b2], 1, 1
ReDim b(z)
Set dic = CreateObject("Scripting.Dictionary")
ar2 = [a1].CurrentRegion
For i = 2 To m
s = ar2(i, 2): t = ar2(i, 6)
k = b(t) + 1: b(t) = k
dic(s) = k
sr = Split(s, ".")
s1 = "": s2 = "S"
For j = 0 To IIf(t < z, t, z - 1)
s1 = s1 & w & sr(j)
s2 = s2 & Format(dic(Mid(s1, 2)), s0)
Next
br(i, 1) = s2
Next
[f2].Resize(m - 1) = br
[a1].Resize(m, 6).Sort [f2], 1, [d2], , 2, [b2], 1, 1
MsgBox "OK"
End Sub
|