|
学习下,不知道这样可好
- Sub 找重复值()
- ' MsgBox "谢谢您的帮助!!!" & Chr(10) & "代码可以直接写在模块1里", 64, "提示"
- Dim i, arr, Keys, Its, brr(), k, t
- arr = Sheet1.Range("a1").CurrentRegion
- Dim dic
- Set dic = CreateObject("scripting.dictionary")
- t = Timer
- For i = 2 To UBound(arr)
- If Not dic.exists(arr(i, 1)) Then
- dic(arr(i, 1)) = i
- Else
- dic(arr(i, 1)) = dic(arr(i, 1)) & "," & i
- End If
- Next
- Keys = dic.Keys
- Its = dic.items
- For i = 0 To UBound(Keys)
- If UBound(Split(Its(i), ",")) > 0 Then
- k = k + 1
- ReDim Preserve brr(1 To 3, 1 To k)
- brr(1, k) = Keys(i)
- brr(2, k) = UBound(Split(Its(i), ",")) + 1
- brr(3, k) = Its(i)
- End If
- Next
- ReDim crr(1 To UBound(brr, 2), 1 To 3)
- For i = 1 To UBound(brr, 2)
- For j = 1 To 3
- crr(i, j) = brr(j, i)
- Next
- Next
-
- Sheet1.Range("i5:k5").Resize(UBound(crr)) = crr
- MsgBox "运行结束,共耗时:" & Timer - t & "s"
- End Sub
复制代码 |
|