|
发表于 2021-8-2 09:46
|
显示全部楼层
本楼为最佳答案
Sub 字典去重1()
Dim ar(), br() As Double, cr
ReDim ar(2 To [b65536].End(xlUp).Row, 1 To 2)
For r = 2 To UBound(ar)
For c = 1 To 2
ar(r, c) = Cells(r, c + 1)
Next
Next
On Error Resume Next
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(ar)
d.Add ar(i, 1) & "\" & ar(i, 2), "" '两列值连接成一个值作为字典键值
Next i
tem = d.keys
[D2].Resize(UBound(tem), 1) = WorksheetFunction.Transpose(tem)
ReDim br(1 To UBound(tem) + 1, 1 To 2) '再将键值拆分成两个值,赋予数组
For i = 0 To UBound(tem)
cr = Split(tem(i), "\")
br(i + 1, 1) = cr(0)
br(i + 1, 2) = cr(1)
Next i
[D2].Resize(d.Count, 2) = br
End Sub |
|