如何利用EXCEL VBA将一列数据中不重复的数据读取到数组中?

如何利用EXCEL VBA将一列数据中不重复的数据读取到数组中?,第1张

利用字典去重,下面是示例代码,去除第一列的重复项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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11906538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存