日记首页
|
列表
|
添加日记
|
管理登陆
标题:vba中的字典用法
<p>网址:</p><p><a href="http://blog.sina.cn/dpool/blog/s/blog_bf035a210102y6yx.html?md=gd">http://blog.sina.cn/dpool/blog/s/blog_bf035a210102y6yx.html?md=gd</a></p><div class="b-txt3 read-time"><span class="time"><br></span></div><div class="b-txt3 read-time"><span class="time"><br></span></div><div class="b-txt3 read-time"><span class="time"><font size="2"><strong>excel编程vba中的字典用法CreateObject("Scripting.Dictionary")</strong></font></span></div><div class="b-txt3 read-time"><span class="time"><font size="2"><br></font></span></div><div class="b-txt3 read-time"><span class="time">2017-11-09 09:59</span><span class="reads">阅读:<span data-role="read-num">2,953</span></span> </div><div class="content b-txt1">工作中用到vba统计学生成绩,遇到一个需要暂时存储信息的问题。网上搜索解决方法时看到了一个“字典”的对象,感觉很像java编辑中的集合map对象,有键有值成对存储数据。感觉非常有意思。特意搜了一下“字典”的简章说明、用法,记录到这里。即可以以后再用的时候查阅,也可以推广给大家学习。自己的vba知识又多了一点,字典、数组,都用过了。<br> 这是我看到的最简单明了的Excel VBA字典(dictionary)的教程,把字典的应用,用短短几百字,全部道尽,简!但精彩!原文如下:<br> 当年我(原作者:彭希仁)向LDY版主求教字典的时候,他老人家总结了一句话“呼之即来,挥之即去”<br>即学会d(a)=s 和 s=d(a) 就差不多了,忘记ADD存在。<br> 一、定义字典<br>Set d = CreateObject('Scripting.Dictionary')<br>二、呼之即来,挥之即去<br>d('张三“)=1 '相当于给字典赋值,张三过来(没有就生成)拿个1站一边去<br>d('李四”)=2 '相当于给字典赋值,李四过来(没有就生成)拿个2站一边去<br>d('李四”)=3 '相当于改变值,字典中已经有李四了,李四跑过来,丢下2换个3站一边去<br> 注:这时字典中有两个人的存在,张三=1 和 李四=3,相当于实现了去重复的功能<br>s=d('张三') 's=1 即叫了声张三,张三就告诉你他拿的是1<br> s=d('李四') 's=3 即叫了声李四,李四就告诉你他拿的是3<br> s=d('麻子') 's='' 没有找到麻子怎么办呢,字典里就自动生成一个麻子d('麻子') =“”,告诉你他手上是空的<br> 注:这时字典中有三个人的存在,张三=1 ; 李四=3;麻子=“”<br>三、将字典里的东西变成数组<br>arr= d.Keys '把名字的集合按先来后到的原则放到一维数组里 arr(0)=“张三” ; arr(1)=“李四” ; arr(2)=“麻子”<br>arr1=d.Items '把名字对应的值的集合按先来后到的原则放到一维数组里 arr1(0)=“1” ; arr1(1)=“3” ; arr1 (2)=“”<br>四、查找字典中有没有这个人<br>s=d.Exists(“张三”) 's=True 有的<br>s=d.Exists(“http://www.excelba.com”) 's=False 没有<br> 五、清空数组<br>d.RemoveAll</div>