记得前两天在出单条件汇总的笔记时,有位Joshua同学说要增加难度,希望出个多条件汇总和利用字典求解计数非重复项的内容,今天我就一次性满足ta的这两个要求: 看案例,还是那个单条件汇总的案例,只是我增加了一个商品的字段,就变成了双条件的汇总了 数据源:要求根据“销售部门”和“商品”分别对销量和销售额进行汇总 结果: 我先贴代码出来,后面再给大家收集下字典的知识 下面咱们看看今天我们要学习的新内容吧:字典的去重及定位 首先,字典(dictionary)不是Excel自带的对象,它是一个外部对象,所以使用之前需要引用 引用方法: VBE编辑窗口——工具——引用——勾选“Microsoft Scripting Runtime”——确定就可以了;一般我们在代码中做前期绑定时,这一步骤必不可少。 引用的界面: 字典的基础知识介绍: 一、字典的两种绑定方式: 1. 前期绑定 优点: 1.1:能够自动带出成员 1.2:运行效率高 缺点:要先引用才能用,如果代码发给没有引用字典的人,代码可能会失效。 语法见下: 2. 后期绑定 优点:代码的通用性较高,使用无限制,不需要引用 缺点: 2.1:不能自动带出成员,需要编程人员自己记住它对应的方法和属性,给编写代码增加了难度。 2.2:运行效率较前期绑定要低 语法见下: 二、添加数据到字典: 方法1、 dic.add Keys,Items;这种方法,需要注意的是:如果添加的keys键已经存在、程序会报错,不能再对其进行添加;因为字典的keys键是不能重复的。 如下案例,Sunny已经存到字典中了,再添加时,就报错为“该关键字已经与该集合的一个元素相关联” 方法2、 dic(keys)=items;这种方法较为友好,如果添加的Keys键不存在,就在字典里添加;不存在就记录(修改)最后一次存的该Keys键对应的Items值。 看以下案例,“Sunny”已经存在于字典dic中,但是用dic(“Sunny”)添加数据的方法,程序并不会报错,只是将其的Item值由原来的“晴朗”改成了“天气晴好” 第一次添加时Item为“晴朗” 再次添加后,Item被修改为“天气晴好” 三、访问字典的数据 1. dic(key) 表示查字典,根据Key值,得到对应的item值 2. dic.keys(编号) 表示根据编号查key值 注意:dic.keys(编号)只用于前期绑定时有效;后期绑定的字典要根据编号得到key值的话,应该用dic.keys()(编号)来获取。
四、判断某个指定的key是否存在 语法: dic.Exists(key) 如果key存在 返回True, 否则 返回False 注意:字典的keys 和 Items均是一个以0开始编号的一维数组 现在我们再来看看这个案例都运用了哪些字典的方法 1. Exists 判断字典中的KEY是否存在 2. 像字典中添加数据: Dic(key)=Item 3. 访问字典的数据: dic(key) 在VBA中如果能好好利用字典和数组这两把利剑,那工作中80%的任务都能够毫无压力的完成了,现在有没有觉得自己厉害了一丢丢?如果有的话,请给自己点赞 |
|
来自: L罗乐 > 《跟孤独居士学VBA》