这段时间颇有点邯郸学步的感觉,由于把大量的时间和精力投入到python中,之前学的vba到想用的时候,居然忘了。
作为非程序员,编程向来当成"核导弹"来用,一次编写出来,能用,好,很难再有机会写第二遍代码了,因为问题解决了,以至于一直在遗忘的状态,再想用的时候到处翻资料,笔记。
VBA字典技术
VBA字典在日常统计工作中是个十分有用的技术,但是在写程序时,由于不熟练和个人记忆力有限,总要翻阅资料,于是产生将常用的字典技术汇集起来的想法。
一、入门篇
字典: 是为字词提供音韵、意思解释、例句、用法等等的工具书。
在VBA中字典与传统理解的字典差不多:
1、都具有关键字(key)和值(item)一一对应的关系,
2、键具有唯一性。
VBA字典的作用,与数组的结合运用,简化代码(其实是牺牲内存,空间换取时间的用法,但在现时代通用的电脑普遍内存够用的),提升速度等一些强大的功能。
字典不存在与VBA中,需要调用,有两种方法:
1、前期绑定,在EXCEL表格开发工具中,工具-引用-浏览-找到scrrun.dll-确定;
2、后期绑定,直接用代码创建调用:Set d = CreateObject("scripting.dictionary")
本文主要采用后期绑定方式记录字典用法。
字典对象的方法有6个:
Add 添加一条关键字与条目
Keys 返回所有关键字(形成1维数组)
Items 返回所有条目(形成1维数组)
Exists 关键字是否存在(TRUE/FALSE)
Remove 移除关键字与对应的条目
RemoveAll 移除所有关键字与对应的条目
向 Dictionary 对象中添加一个关键字项目对。
语法:object.Add (key, item)
Key,必选项。与被添加的 item 相关联的 key。
Item,必选项。与被添加的 key 相关联的 item。
key 是唯一存在的,否则将导致一个错误。
实例1:Sub kaishi()
'字典的键索引从零开始为第一个键
Dim d As New Dictionary, i, j, k, l
Set d = CreateObject("scripting.dictionary")
d.Add "张三", "15"
d.Add "李四", "18"
‘基础取值方法
i = d.Keys(0)
j = Application.WorksheetFunction.Index(d.Keys, 2)
k = d.Keys ’keys会返回一个数组,所以可以用Index方法取值
l = k(1)
'E