利用字典去重,下面是示例代码,去除第一列的重复项Sub Test() '利用字典去重,字典的特性是key值不能重复
Dim Dic, Arr
Dim i As Integer, r As Integer
Dim Str As String
r = Sheet1.Range("A65536").End(xlUp).Row
If r = 1 Then Exit Sub '如果第一列没有数据那么退出程序
Set Dic = CreateObject("scripting.dictionary") '创建字典对象
For i = 1 To r '将第一列数据添加到字典的key值中
Dic(CStr(Cells(i, 1))) = ""
Next
Arr = Dic.keys '返回字典key的数组
Set Dic = Nothing '销毁对象
Str = Join(Arr, ",") '将数组中的内容显示为一字符串
MsgBox Str
End Sub
仅变这道题而言,直接使用 Excel 自身的删除重复项功能会更简单:
选择这块去除重复的区域;
主菜单中选择“数据”→“删除重复项”;
根据提示,默认“数据包含标题”选中,点击“确定”按钮即可。
举例如下:
1.利用字典,将A列不重复的值,显示在B列中
2.Alt+F11,在相应的工作表的VBE中输入代码,执行即可
代码详解如下:
Sub main()
Set dic = CreateObject("scripting.dictionary")'后期绑定字典
For i = 1 To 100
dic(Cells(i, "A").Value) = ""'将A列数值依次放到字典中,字典自带去重功能,重复的数值只保留一个,这里只用到了地点的keys,所以让字典的Item值为空
Next
Range("C1").Resize(dic.Count, 1) = Application.Transpose(dic.keys)'这里通过转置,将字典中的全部Keys依次放到C列中
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)