我用的是第一个字典的代码:
Sub test() '字典
Dim arr, dic, d
Set dic = CreateObject("scripting.dictionary")
Set d = CreateObject("scripting.dictionary")
arr = [a1].CurrentRegion
Range("a:b").Interior.Color = x1None
For i = 2 To UBound(arr)
dic(arr(i, 1)) = dic(arr(i, 1)) + 1
d(arr(i, 1)) = d(arr(i, 1)) & "|" & i
Next i
For i = 2 To UBound(arr)
If dic.exists(arr(i, 2)) And dic(arr(i, 2)) > 0 Then
ms = Split(Mid(d(arr(i, 2)), 2), "|")(0)
dic(arr(i, 2)) = dic(arr(i, 2)) - 1
Cells(Val(ms), 1).Interior.Color = vbYellow
Cells(i, 2).Interior.Color = vbYellow
d(arr(i, 2)) = Replace(d(arr(i, 2)), "|" & ms, "")
End If
Next i
End Sub |