打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学习VBA,报表做到飞 第三章 字典3.3 字典的属性
userphoto

2023.04.05 云南

关注

第三章 字典

3.3 字典的属性

字典一共有四个属性,分别是:Key、Item、Count、CompareMode

3.3.1 Key

更改字典中已有的键

d.key(key)=newkey

例如:

Sub 字典()

Dim d As New Dictionary

d.Add '新加字典', '第一个'

d.Add '字典2', '第二个'

d.Add '字典3', '第三个'

d.Key('字典3') = '修改后字典3'

End Sub

修改后如下图所示:

3.3.2 Item

用于写入或读取字典中指定键的条目,如果指定的键不存在,则会新增。

d.Item(key)[=newitem]

也可以简写为:d(key)[=newitem]

例句:

d.Item('字典3') = '修改后第三个'

d('字典3') = '修改后第三个'

把'字典3'对应的条目进行修改。如果'字典3'这个键值现在在字典里不存在,则会新增'字典3'键值和条目'修改后第三个',如果存在则修改条目。

通常在对字典写入关键字时,都会用到字典的这个简化版属性,代码既简洁,又减少出错的机率。与数组搭配更是相得益彰:

A公司

B公司

C公司

D公司

D公司

D公司

把上面表格里的内容写到字典里。

Sub 写入字典()

Dim d As New Dictionary

arr = Range('a1').CurrentRegion

arr = Application.Transpose(arr)

For i = 1 To UBound(arr)

d(arr(i)) = ''

Next

End Sub

通过一个循环就把数组里的内容写入到字典里了,而且自动去掉了重复项。生成的字典是这样的:

3.3.3 Count

统计字典中关键字的个数

d.count

象上图所示,这个字典的关键字个数就是4。

3.3.4 CompareMode

写入字典的关键字是否区分大小写

d.CompareMode[=compare]

0 区分大小写(默认)

1 不区分大小写

d.CompareMode = 0

小程序:

我们利用字典的Item属性简写语句d(key)=newitem,如果指定的键不存在,则会新增,如果存在则修改条目的特征,做一个随机抽取名单的小程序。

从供应商库名单里随机抽取供应商,写到供应商抽取表里。

A公司

B公司

C公司

D公司

E公司

F公司

G公司

H公司

I公司

J公司

K公司

L公司

M公司

N公司

O公司

**项目项目供应商随机抽取表

序号

供应商名称

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Sub 字典随机抽取名单()

On Error Resume Next

Range('c3:c17').ClearContents

Set d = CreateObject('scripting.dictionary')

arr = Sheets('供应商库').Range('a1').CurrentRegion

arr = Application.Transpose(arr)

For i = 1 To UBound(arr)

d(arr(i)) = ''

Next

n = InputBox('请输入抽取个数')

If n = '' Then MsgBox '未输入抽取个数': Exit Sub

n = n * 1

If n > d.Count Then MsgBox '抽取个数过多': Exit Sub

If n <= 0 Then MsgBox '开玩笑吧你': Exit Sub

For i = 1 To n

t = Application.RandBetween(1, d.Count)

k = Application.Index(d.keys, t)

Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = k

d.Remove (k)

Next

End Sub

先把供应商表里的内容通过数组写到字典里,然后用RandBetween函数生成一个从1到d.Count的随机数t,用Application.Index(d.keys, t)语句读取随机数t对应的字典里的关键字,把它写到供应商名称下的单元格里,再删除掉这个关键字。循环往复,就会抽取出你需要的供应商名单了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
(19)字典Dictionary
字典学习第一课(6方法4属性)
ExcelVBA字典实现窗体二级下拉菜单
VBA进阶|在VBA中使用字典进行数据统计与查询
excl 利用字典和数组分类求和
【20180919】- VBA中数组、集合和字典(五)——字典的常用方法和属性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服