分享

VBA新手学习笔记之:字典的定位和去重

 L罗乐 2017-06-29

       记得前两天在出单条件汇总的笔记时,有位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%的任务都能够毫无压力的完成了,现在有没有觉得自己厉害了一丢丢?如果有的话,请给自己点赞








    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多