欢迎大家来到IT世界,在知识的湖畔探索吧!
- 系统环境:Windows 10
- Excel:2016版本
本系列讲讲字典功能
利用字典快速移除键功能,求两个集合的差集
Part 1:应用场景
- 目前有一采购清单(A列),库存也有一堆物品(B列),现在需要采购库存中没有但在采购清单中的物品,其实就是C列=A列- B列,求两者的差集
图1 示例
欢迎大家来到IT世界,在知识的湖畔探索吧!
Part 2:逻辑过程
- 定义两个字典(d1,d2),字典d1的键存放A列数据,字典d2的键存放B列数据
- 对字典d2的键进行循环,依次判断是否在字典d1中,若在则移除字典d1中对应的键
- 将字典d1的键输出到C列
Part 3:代码
Sub test() Set d1 = CreateObject("Scripting.Dictionary") Set d2 = CreateObject("Scripting.Dictionary") Set sht = ThisWorkbook.Worksheets("示例") maxRowA = sht.Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To maxRowA Step 1 x = sht.Cells(i, "A") d1(x) = "" Next i maxRowB = sht.Cells(Rows.Count, "B").End(xlUp).Row For i = 2 To maxRowB Step 1 x = sht.Cells(i, "B") d2(x) = "" Next i For Each ky In d2.Keys If d1.Exists(ky) Then d1.Remove (ky) End If Next rowNum = 2 For Each ky In d1.Keys sht.Cells(rowNum, "C") = ky rowNum = rowNum + 1 Next End Sub 欢迎大家来到IT世界,在知识的湖畔探索吧!
图2 代码截图
图3 执行结果
Part 4:部分代码解读
- d1.Remove (ky) 移除字典中的键ky
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/78524.html