建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用

fe843c3d4cb24ad618fa9ddf1dd75c00.png

大家好,我们今日继续讲解VBA数组与字典解决方案第37讲内容:在VBA中字典的应用。对于字典,也许许多的朋友对此比较陌生,在有的语言里字典也称之为MAP,应用也是比较广泛的。

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

一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列写出最后的键和键值,代码如下:

Sub MyNZsz_37() '第37讲 字典的应用

Dim dic As Object

Sheets("37").Select

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

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

For i = 1 To 21

arr(i) = i + 99

Next i

For i = 1 To 20

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

Next i

i = 1

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

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

i = i + 1

Loop

dic.Add "WW21", "234" '增加一个键,键值是234

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

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

End Sub

代码截图:

2cfbbc5e4b4da947ba5863ec4f288b48.png

代码讲解:

1. 上述代码首先创建一个字典对象,然后,把工作表A列的值放到数组,作为键;第三步是给字典的键赋值,第四步移除C列的键对,第五步,增加一个键,第六步显示

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

字典的加载有两种办法,一个是CreateObject("Scripting.Dictionary"),另外一个是引用,就是在VBE窗口,打开引用,找到Dictionary的引用即可,本书中大多以SET形式来引用字典

3 For i = 1 To 21

arr(i) = i + 99

Next i

赋值一维数组,作为键值

4 For i = 1 To 20

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

Next i

写入键和键值。要特别注意是我实例中的写法

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

上述代码移除键和键值.

6 dic.Add "WW21", "234" '增加一个键,键值是234

上述代码增加键和键值.

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

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

显示键和键值

运行后的截图:

014c5b741dbe25275fc0c35e15e20b67.png

今日内容回向:

1 什么是字典?

2 字典有哪些属性?

3 如何给字典赋值?

4 利用字典如何进行排重?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ajax jsp模糊查询源码,ajax模糊查询api

ajax模糊查询api 内容精选换一换使用标签过滤实例POST /v2/{project_id}/{resource_type}/resource_instances/action请求样例action为filter时请求体响应样例action为filter时响应体&#xff1a;action为count时响应体&#xff1a;请参见错误码。查询公网Zone的列表。GET /v2/…

网站服务器断电后果,数据库服务器突然断电后果

数据库服务器突然断电后果 内容精选换一换当企业的IT系统部署在本地数据中心&#xff0c;为了提升IT系统可靠性且降低投资成本时&#xff0c;可通过跨云容灾的方式&#xff0c;将容灾系统部署在云端。华为云提供的跨云容灾方案&#xff0c;面向大量企业、金融普遍采用的灾备中心…

python不支持哪种数据类型_Python不支持以下哪种数据类型?

Python不支持以下哪种数据类型&#xff1f;生命的意义在于在工作中实现自我价值&#xff0c;而不是一个关于做了什么事和得到多少报酬的问题。A:错B:对我们撰写发明专利申请书时可以将自己的发明创造的核心材料以论文形式进行撰写&#xff0c;然后转交专利代理人即可。A:对B:错…

python思想读后感_《Deep Learning with Python》读后感精选

《Deep Learning with Python》是一本由Francois Chollet著作&#xff0c;Manning Publications出版的Paperback图书&#xff0c;本书定价&#xff1a;USD 49.99&#xff0c;页数&#xff1a;350&#xff0c;特精心从网络上整理的一些读者的读后感&#xff0c;希望对大家能有帮…

python里it n_Python3 round(x [,n]) 函数

Python3 round(x [,n]) 函数描述round() 方法返回浮点数 x 的四舍五入值&#xff0c;准确的说保留值将保留到离上一位更近的一端(四舍六入)。精度要求高的&#xff0c;不建议使用该函数。语法以下是 round() 方法的语法:round( x [, n] )参数x -- 数字表达式。n -- 表示从小数点…

java双重for循环流程图_java 流程执行 循环 foreach循环

一。 if分支1. 结构 if else if else2.执行原则if if if 结构 会一直去执行()里的判断语句if else if else if 结构 只要一条()的结果是true&#xff0c;不会执行接下来的判断一个 if 跟 一个else 一个if 可跟多个else if 如果if 或者 else if 里的条件都不满足…

0编译器详解_详解Java枚举类型(Enum)中的方法

文章前记程序员工作久了便可能整日忙碌于“增删改查”中&#xff0c;迷失方向&#xff0c;毫无进步。该公众号致力于分享软件开发相关的原创干货&#xff0c;助你完成从程序员到架构师的进阶之路&#xff01;努力&#xff01;做一个NB的Coder!在上篇文章中&#xff0c;我们对Ja…

linux 对象 调出r_【转】Linux - chown 中的 -R 参数

1. 查看目录及当前文件[rootlocalhost yuechaotian]# pwd/home/yuechaotian[rootlocalhost yuechaotian]# ll总用量 8drwxr-xr-x 3 root root 4096 12月 7 14:52 studydrwxr-xr-x 2 root root 4096 12月 9 21:43 test[rootlocalhost yuechaotian]# ll test总用量 12-rwxr-x…

选中内容_Excel – 选中的单元格自动显示在A1,报表演示数据再多也能看清

当我们要拿一张数据量比较大的报表做演示时&#xff0c;是不是经常会这样&#xff1f;演示者&#xff1a;今年 xxx 月的销售业绩不错&#xff0c;总计 xxx&#xff0c;比上月增长了 xx%。领导们&#xff1a;你说的这数字在哪&#xff1f;演示者&#xff1a;请您看投影上第 23 行…

5渲染判断_先渲染再对焦,KeyShot 深度通道在 Photoshop 中的对接

事情的起因&#xff0c;是在我用华为 P40 Pro 手机的时候&#xff0c;发现华为拍照系统当中的先拍照后对焦功能实在强大&#xff0c;那我会想到这个东西能不能用在我们产品渲染当中呢&#xff1f;仔细想一想这个东西&#xff0c;无非就是通过距离判断相机对焦点和景深的一个做法…

adc0809引脚图及功能_80C51单片机的引脚及其功能介绍

首先我们来连接一下单片机的引脚图&#xff0c;如果&#xff0c;具体功能在下面都有介绍。单片机的40个引脚大致可分为4类&#xff1a;电源、时钟、控制和I/O引脚。⒈ 电源&#xff1a; ⑴ VCC - 芯片电源&#xff0c;接5V&#xff1b;⑵ VSS - 接地端&#xff1b;⒉ 时钟&…

http发送16进制报文_HTTP系列探索HTTP网络层的”前端性能优化“

作者&#xff1a;前端学苑 公号 / 前端小贾 (本文来自作者投稿)编者荐语性能是前端编码规范、网络层面、辅助工具等相互作用的结果。这是一个兼顾广度和深度的问题&#xff0c;优化好了可以加快首屏加载速度提高用户留存率&#xff0c;节省服务器资源降低成本等&#xff0c;也是…

mysql报错级别_MySQL启动出现几个警告级别错误

日志如下2015-03-2720:45:324876[Note]InnoDB:Usingatomicstorefcountbufferpoolpages2015-03-2720:45:324876[Note]InnoDB:TheInnoDBmemoryheapisdisabled2015-03-2720:45:324876[Not...日志如下2015-03-27 20:45:32 4876 [Note] InnoDB: Using atomics to ref count buffer p…

mysql 使用储存过程_为什么使用mysql储存过程?mysql储存过程简介

存储过程需要MySQL 5 MySQL 5添加了对存储过程的支持&#xff0c;因此&#xff0c;本章内容适用于MySQL 5及以后的版本。迄今为止&#xff0c;使用的大多数SQL语句都是针对一个或多个表的单条语句。并非所有操作都这么简单&#xff0c;经常会有一个完整的操作需要多条语句才能完…

mysql查看表结构修改记录表_MySQL 表结构查看以及表结构修改

使用MySql数据库时&#xff0c;如果对表字典不够熟悉&#xff0c;我们就需要查看表结构。如果数据库是在远程linux上部署&#xff0c;很多时候我们只能通过mysql的命令来查看表结构。同样&#xff0c;如果我们想要修改表结构&#xff0c;添加、删除、修改列时&#xff0c;也只能…

69讲入门python_Python入门,一定要吃透这69个内置函数

内置函数就是Python预先定义的函数&#xff0c;这些内置函数使用方便&#xff0c;无需导入&#xff0c;直接调用&#xff0c;大大提高使用者的工作效率&#xff0c;也更便于程序的阅读。截止到Python版本3.9.1&#xff0c;Python一共提供了69个内置函数。如果你还没入门&#x…

imgkit分辨率_pythonhtml2image: imgkit 和 wkhtmltoimage的坑

场景需要根据信息&#xff0c;将一个动态页面生成图片。经过调研&#xff0c;发现只有imgkit符合要求。imgkit其实是调用wkhtmltopdf的wkhtmltoimage(wkhtmltopdf包含wkhtmltopdf和wkhtmltoimage两个工具)来实现功能。wkhtmltopdf和wkhtmltoimage是通过调用QT来实现功能&#x…

mysql sql组合_详解mysql 组合查询

使用UNION多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句)&#xff0c;并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)有两种情况需要使用组合查询&#xff1a;在单个表查询中从不同的表返回类似结构的…

mysql 共享表空间存储_MySQL InnoDB共享表空间

简介ibdata1ibdata1文件是InnoDB存储引擎的共享表空间文件&#xff0c;存放位置my.ini 中的 datadir"D:\phpStudy\MySQL\data"&#xff0c;目录下。查看innode_file_per_table 参数的状态show variables like %per_table;表空间Innodb存储引擎可将所有数据存放于ibda…

python36中文手册_python36中文手册_python_36_文件操作4

fopen(test.txt,a,encodingutf-8)#f.truncate()#截断&#xff0c;不指定将清空所有内容f.truncate(5)#从头开始截断&#xff0c;截断5个字符 注&#xff1a;使用f.seek()改变光标位置不顶用f.close()fopen(yesterday,r,encodingutf-8)#读写文件print(f.readline())print(f.read…