ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何使用字典获取三列单元格内容的重复值?

如何使用字典获取三列单元格内容的重复值?

作者:绿色风 分类: 时间:2022-08-17 浏览:98
楼主
wise
Q:如何使用字典获取三列单元格内容的重复值?
A:ALT+F11→插入模块→模块输入以下代码:
  1. Sub MyTest()
  2. Dim i&, DicA As Object, DicB As Object, DicC As Object
  3. Dim Arr1, Arr2, Arr3
  4. Set DicA = CreateObject("scripting.dictionary")
  5. Set DicB = CreateObject("scripting.dictionary")
  6. Set DicC = CreateObject("scripting.dictionary")
  7. Arr1 = Range("A1:A60000")
  8. Arr2 = Range("B1:B60000")
  9. Arr3 = Range("C1:C60000")
  10. For i = LBound(Arr1) To UBound(Arr1)
  11. '循环数组Arr1
  12.   DicA(Arr1(i, 1)) = ""
  13.   '添加不重复值到字典DicA
  14. Next i
  15. For i = LBound(Arr2) To UBound(Arr2)
  16. '循环数组Arr2
  17.   If DicA.exists(Arr2(i, 1)) Then
  18.   '如果Arr2中的值存在于字典DicA中,则往字典DicB添加重复的值
  19.      DicB(Arr2(i, 1)) = ""
  20.   End If
  21. Next i
  22. For i = LBound(Arr3) To UBound(Arr3)
  23. '循环数组Arr3
  24.   If DicB.exists(Arr3(i, 1)) Then
  25.   '如果Arr3中的值存在于字典DicB中,则往字典DicC中添加重复的值
  26.      DicC(Arr3(i, 1)) = ""
  27.   End If
  28. Next i
  29. Range("D1").Resize(DicC.Count, 1) = Application.Transpose(DicC.keys)
  30. '把DicC的keys值赋予给D列
  31. Set DicA = Nothing
  32. Set DicB = Nothing
  33. Set DicC = Nothing
  34. End Sub


查找重复值.rar
2楼
bluexuemei
学习,好方法!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap