|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Option Explicit
Sub TEST6()
Dim ar, br, cr, i&, j&, r&, dic As Object, vKey
Application.ScreenUpdating = False
Set dic = CreateObject("Scripting.Dictionary")
ar = [A1].CurrentRegion.Value
For i = 2 To UBound(ar)
vKey = ar(i, 2) & "|" & Left(ar(i, 1), 1)
dic(vKey) = dic(vKey) & " " & Mid(ar(i, 1), 2)
Next i
ReDim ar(1 To dic.Count, 2)
For Each vKey In dic.keys
br = Split(dic(vKey))
bSort1 br, 1, UBound(br), False
r = r + 1
cr = Split(vKey, "|")
ar(r, 0) = cr(0)
ar(r, 1) = cr(1)
br(1) = Format(br(1) + 1, "0000")
ar(r, 2) = cr(1) & br(1)
Next
[G4].Resize(UBound(ar), 3) = ar
Set dic = Nothing
Application.ScreenUpdating = True
Beep
End Sub
Function bSort1(ByRef ar, ByVal iFirst&, ByVal iLast&, _
Optional ByVal isOrder As Boolean = True)
Dim i&, j&, vTemp
For i = iFirst To iLast - 1
For j = iFirst To iLast + iFirst - 1 - i
If ar(j) <> ar(j + 1) Then
If ar(j) < ar(j + 1) Xor isOrder Then
vTemp = ar(j)
ar(j) = ar(j + 1)
ar(j + 1) = vTemp
End If
End If
Next j
Next i
End Function
|
评分
-
2
查看全部评分
-
|