如下。
Sub?AA()Dim?i%,?j%,?行數%,?k%?'定義4個變量為整數類型
Dim?Arr,?Brr(1?To?50,?1?To?2)?'定義兩個數組,其中Brr是二維(1到50行,1到2列)
Dim?D?As?New?Dictionary?'定義D為字典
i?=?Range("A"?&?Rows.Count).End(xlUp).Row?'i的值為A列最後有數據那壹行的行號
Arr?=?Range("A1:B"?&?i)?'把A1到B列最後壹行的這塊區域,賦值該數組Arr
For?j?=?1?To?UBound(Arr)?'循環,j從1到Arr數組的下標——即從第壹行到最後壹行
If?D.Exists(Arr(j,?1))?Then?'如果字典中存在Arr(j,1)這個關鍵字——即,字典中存在第j行第1列(A列第J行單元格)的關鍵字
行數?=?D(Arr(j,?1))?'行數就等於對應的item項目值
Brr(行數,?2)?=?Brr(行數,?2)?+?Arr(j,?2)?'Brr數組第“行數”行,第2列值,等於自身累加Arr(j,?2)——B列第J行單元格的值
Else?'否則
k?=?k?+?1?'k遞增1
D(Arr(j,?1))?=?k?'Arr(j,1)對應的item項目值等於k值
Brr(k,?1)?=?Arr(j,?1)?'Brr的第k行,第壹列的值,等於Arr(j,?1)——A列第j行
Brr(k,?2)?=?Arr(j,?2)?'Brr的第k行,第二列的值,等於Arr(j,?2)——B列第j行
End?If?'結束條件判斷
Next?j?'下壹個循環
Range("G2").Resize(k?-?1,?2)?=?Brr?'G2單元格開始,擴展區域為k-1行和2列;把Brr數組的值,寫入這塊區域
End?Sub