|
发表于 2011-8-18 22:54
|
显示全部楼层
本楼为最佳答案
那现在给你加一条语句就可以了:- Sub 高级筛选1()
- With Sheets("Sheet1")
- Dim arr, n As Double, dic As New Dictionary, brr()
- n = .Range("a65536").End(xlUp).Row
- arr = .Range("a1:b" & n)
- For i = 1 To UBound(arr)
- If dic.Exists(arr(i, 2)) Then
- m = m + 1
- ReDim Preserve brr(1 To 2, 1 To m)
- brr(1, m) = arr(i, 1): brr(2, m) = arr(i, 2)
- Else
- dic(arr(i, 2)) = arr(i, 1)
- End If
- Next
- .Range("e:f").ClearContents
- .Range("e1:f1") = Array("姓名", "身份证号")
- On Error Resume Next
- .Range("e2").Resize(m, 2) = Application.Transpose(brr) 'E、F列放身份证号有重复的
- .Range("c:d").ClearContents
- .Range("c1").Resize(dic.Count) = Application.Transpose(dic.Items) 'C列、D列放不重复值
- .Range("d1").Resize(dic.Count) = Application.Transpose(dic.Keys)
- End With
- End Sub
复制代码 On Error Resume Next
出错了之后继续接下来的程序,就OK了。
你试下 |
|