打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
字典应用实例二(多表求不重复值)



我们都知道,字典中的key是不允许重复的,所以利用这个特性,我们就可以轻而易举的对数据进行去重复。在一列数据中去重复很好办,如果需要去重复的数据不再一个表中该怎么办呢?


如下:



想要把上海、江苏、浙江、福建四个分公司的产品数据进行去重复并汇总到产品表中。


思路:

我们只需要用for each 分别循环出每个分公司并把其产品数据写入字典即可。


代码:

Sub 去重复()

Dim d As Object, sh As Worksheet, arr, i%

On Error Resume Next

Set d = CreateObject('scripting.dictionary')

For Each sh In Worksheets

        If sh.Name <> '产品' Then

       arr = sh.Range('a2', sh.[a2].End(xlDown))

                For i = 1 To UBound(arr)

                d.Add arr(i, 1), ''

                Next

        End If

Next

Sheets('产品').[a2].Resize(d.Count, 1) = Application.Transpose(d.keys)

End Sub


这里值得注意的是:

arr = sh.Range('a2', sh.[a2].End(xlDown))

我写代码时一开始写成了:

arr = sh.Range('a2', [a2].End(xlDown))

怎么都出不来结果,按F8检查的过程中才发现要如此表达,括号外面要写明是哪张表里的区域,括号里面[a2]前面也要写sh,否则会认为是活动工作表的[a2],结果就会出错。


今天的分享就到这里了!


想更深入的学习视频教程,请进入公众号后台菜单中了解详情!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel通用VBA代码一键合并多个工作表至总表!
excel vba教程之多表比较(数组和Union方法)
多表金额汇总
VBA进阶|使用集合collection构造数据清单来与工作表交互
如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表?
Excel VBA 7.36跨工作表对数据按类求和,你还在敲计算器?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服