Option Explicit
Sub TEST()
Dim Brr, V, Y, R&, i&, T$, M%, K%
'↑宣告變數
Set Y = CreateObject("Scripting.Dictionary")
'↑令Y變數是 字典
Brr = Range([A1], Cells(Rows.Count, "A").End(xlUp))
'↑令Brr變數是 二維陣列,以A欄儲存格值帶入陣列中
For i = 2 To UBound(Brr)
'↑設順迴圈
T = Left(Brr(i, 1), 2)
'↑令T變數是左邊2字的字串
K = Right(Brr(i, 1), 3)
'↑令K變數是右邊3字轉為數值(因為K宣告是數值)
M = Y(T)
'↑令M變數是T變數查Y字典得到item,
'一開始Y字典裡沒有此key時,item是初始值轉整數=0,
'因為M宣告是整數值
If M < K Then M = K
'↑這是要比較出最大值
Y(T) = M
'↑令以T變數當key,item是當下的最大值放回字典
Next
For Each V In Y.KEYS
'↑設逐項迴圈!令V變數是 Y字典的key
R = R + 1
'↑令R變數累加 1
Brr(R, 1) = V & Format(Y(V), "000")
'↑令以組合字串(結果資料)覆蓋掉原Brr陣列值,
'畢竟Brr的原資料已經用不到了,
'如此就不必再設一個陣列裝結果資料
'但是需要準確的知道結果資料到陣列的哪一列,如R變數或Y.Count
Next
[J2].Resize(Y.Count, 1) = Brr
'↑令Brr局部資料(結果資料)寫入儲存格中,超過此範圍的Brr陣列值忽略
Set Y = Nothing: Erase Brr
'↑令釋放變數
End Sub