c++ 字典键值是否存在_VBA中,字典(Dictionary)应用的实例讲解

b4ad8161b80066fbd8d725ab75ba4699.png

字典,其实就是一些“键-值”对。使用起来非常方便,有类似于微型数据库的作用,可用于临时保存一些数据信息。

一 VBA中创建字典:用的是WSH引用。

Dim myd As Object

Set myd = CreateObject("Scripting.Dictionary")

二 字典的方法,有Add、Exists、Keys、Items、Remove、RemoveAll,六个方法。

① Add 用于添加内容到字典中。如myd.Add key, item 第一个参数为键,第二个参数为键对应的值

② Exists用于判断指定的关键词是否存在于字典(的键)中。如myd.Exists(key)。如果存在,返回True,否则返回False。通常会在向字典中添加条目的时候使用,即先判断字典中是否已存在这个记录,如果不存在则新增,否则进行其它的操作。

③ Keys获取字典所有的键,返回类型是数组。如myd.Keys()

④ Items获取字典所有的值,返回类型是数组。如myd.Items()

⑤ Remove从字典中移除一个条目,是通过键来指定的。myd.Remove(key)如果指定的键不存在,会发生错误。

⑥ RemoveAll 清空字典。

三 字典的属性 有Count、Key、Item、ConpareMode四种属性

① Count用于统计字典中键-值对的数量。也可以简单理解为统计字典中键的个数;

② Key用于更改字典中已有的键。如:myd.Key("oapp") = "Orange" 如果指定的键不存在,则会产生错误。

③Item用于写入或读取字典中指定键的值,如果指定的键不存在,则会新增。如.Item("oapp") = 10

下面以一个实例来说明字典的应用:在下图的A列有不同的键,要在对应的键中写入键值,然后把C列对应的键去掉,并任意增加一个键,最后在E,F列写出最后的键和键值:

370ccb184eacc0cf4280bb8c53915da3.png

代码如下:

Sub mynzdd()

Dim dic As Object

Sheets("sheet4").Select

Set dic = CreateObject("Scripting.Dictionary") '引用字典

Dim arr(1 To 100), i As Long '建立一个数组用来给键赋值

For i = 1 To 100

arr(i) = i + 99

Next i

i = 1

Do While Cells(i, 1) <> ""

dic(Cells(i, "a").Value) = arr(i) '写入键和键值,要注意写入的方法

i = i + 1

Loop

i = 1

Do While Cells(i, 3) <> ""

dic.Remove (Cells(i, "c").Value) '移除C列的键值

i = i + 1

Loop

dic.Add arr(100), "234" '增加一个键对应的键是arr(100)即199,键值是234

[e1].Resize(dic.Count, 1) = Application.Transpose(dic.Keys) '转置显示键

[f1].Resize(dic.Count, 1) = Application.Transpose(dic.items) '转置显示键值

End Sub

代码截图:

b7206e8f7f2b635e920bbb53e9c195b8.png

返回的结果如下:

31be96cdd0a7bf23a47ae571786a2d01.png

我们可以看到,重复的键已经自动的去除了,需要删除的键也已经删除了,需要增加的也增加了,非常的简单。

今日内容回向:

1 什么是字典.它的方法和属性有哪些?

2 如何利用字典去重复的数据?

原文来自于:

VBA中,字典(Dictionary)应用的实例讲解​baijiahao.baidu.com
b7ef2128a41553615c0b7e5f3d4b10f1.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值