vba去除重复项,可以考虑使用字典
Sub 按钮1_Click()
Set d = CreateObject("scripting.dictionary")
Set Rng = Nothing
arr = [a1].CurrentRegion
Application.ScreenUpdating = False
For j = 1 To UBound(arr)
If d.exists(arr(j, 1)) Then
If Rng Is Nothing Then
Set Rng = Cells(j, 1)
Else
Set Rng = Union(Rng, Cells(j, 1))
End If
Else
d(arr(j, 1)) = ""
End If
Next j
If Not Rng Is Nothing Then Rng.EntireRow.Delete
Application.ScreenUpdating = True
End Sub
代码运行后,仅仅保留不重复项目
你直接说你要做什么吧,一般没人用Collection,EXcelhome论坛上几乎没有人用Collection。你写这么烂的程序,浪费我半小时调试时间,真不值。
我们去重就两种方法,要么用excel数据菜单里自带的‘删除重复值’,录制个宏自己改;要么用字典,值写进去就OK,再把d.keys给回数组或excel表格区域。
软件版本:Office2007
方法如下:
1.选择要删除重复项的数据区域:
2.Alt+F11,在当前工作表中输入代码如下:
Sub m()
首行 = Selection(1).Row
尾行 = Selection(Selection.Count).Row
列 = Selection(Selection.Count).Column
For i = 首行 To 尾行
If Application.CountIf(Range(Cells(i, 列), Cells(尾行, 列)), Cells(i, 列)) >1 Then
Cells(i, 列) = ""
End If
Next i
End Sub
3.F5执行代码,返回Excel,得到结果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)