|
发表于 2012-10-12 16:09
|
显示全部楼层
本楼为最佳答案
- Sub 重复2()
- Dim arr
- Dim arrRst1, arrRst2, arrRst3
- Dim dic As Object
- Dim i, j, i1, i2, i3
- Dim dickey
- Application.ScreenUpdating = False
- arr = Range("f5").CurrentRegion.Value
- ReDim arrRst1(1 To UBound(arr) * UBound(arr, 2), 1 To 1)
- ReDim arrRst2(1 To UBound(arr) * UBound(arr, 2), 1 To 1)
- ReDim arrRst3(1 To UBound(arr) * UBound(arr, 2), 1 To 1)
- Set dic = CreateObject("scripting.dictionary")
- For i = 1 To UBound(arr, 2)
- For j = 1 To UBound(arr)
- If arr(j, i) <> "" Then dic(arr(j, i)) = dic(arr(j, i)) + 1
- Next
- For Each dickey In dic.keys
- If dic(dickey) > 0 Then
- i1 = i1 + 1
- arrRst1(i1, 1) = dickey
- End If
- If dic(dickey) = 2 Then
- i2 = i2 + 1
- arrRst2(i2, 1) = dickey
- End If
- If dic(dickey) > 2 Then
- i3 = i3 + 1
- arrRst3(i3, 1) = dickey
- End If
- Next
- dic.RemoveAll
- Next
- [a1].CurrentRegion.ClearContents
- [a1].Resize(i1, 1).Value = arrRst1
- [c1].Resize(i2, 1).Value = arrRst2
- [n1].Resize(i3, 1).Value = arrRst3
- End Sub
复制代码 |
|