Excel VBA 之 去除重复项


Excel VBA 之 去除重复项

今天我们来讲一下字典的应用,字典Dictionary是VBA中一个非常有用的对象。字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)构成。

由于字典的Key具有唯一性,所以我们经常用它来解决一些需要忽略重复值的问题,例如现在有一个工作簿,里面有3张工作表,每张表格的A列都是姓名,所有这些姓名中有些是重复的,要求编写一段代码,在另一个工作表上显示不重复的姓名。

我们按Alt+F11调出VBA代码界面,插入一个模块,新建一个过程Sub

在代码中,我们首先定义一个字典对象

<code>Set dic = CreateObject("Scripting.Dictionary")/<code>

然后,我们需要遍历所有工作表,将A列姓名数据依次添加到我们刚刚定义的字典中

<code>For Each sht In Sheets
If sht.Name <> "Sheet4" Then'因为Sheet4存放统计后的数据,所以不计入统计范围
For i = 1 To sht.[A65536].End(xlUp).Row
dic(sht.Cells(i, 1).Value) = ""
Next
End If
Next/<code>

接下来,把字典的Key全部提取出来,它们是一个数组

<code>arrKeys = dic.keys/<code>

最后,我们需要将这些姓名放到Sheet4的A列

<code>Sheets(4).[A1].Resize(dic.Count, 1) = Application.Transpose(arrKeys)/<code>

Transpose是转置函数,可以进行行列转换


我们来看一下最终效果

Excel VBA 之 去除重复项

程序最终效果

全部代码如下图:


Excel VBA 之 去除重复项

代码全貌

点击下面链接可以查看我的其他文章哦!


喜欢的朋友记得点赞关注哦,网友们如果在Excel中遇到问题都可以找我交流,也可以在评论区或私信告诉我你想看到的VBA办公教程,我将在下期分享给大家,以后不定期更新Excel VBA技巧!


分享到:


相關文章: