VBA教程:数组、集合和字典
在之前的一些文章中,我们详细了解了三种常用的数据结构:集合、数组和字典。在这篇文章中,我们将简要总结一下,看看它们之间有什么不同,从而巩固我们所学的知识。
存储类型。
排列
数组是一组同名的同质元素。它可以用来存储多个相同类型的变量。
聚集
集合可用于存储不同的数据类型。
词典
字典可以用来存储不同的数据类型。
请注意,在数组中,您可以存储用户定义的类型。但是,不能在字典或集合中存储用户定义的类型。
变量声明
排列
声明数组变量时,可以指定数组的大小,例如:
Dim MyArray(5)为整数
您也可以不首先指定数组的大小:
Dim MyArray()为整数
使用前,您必须指定其大小:
雷迪姆米亚雷(5)
聚集
您可以先声明一个集合变量:
作为集合的暗栏
在需要使用集合对象之前,请先创建它:
设置列=新集合
您也可以在声明的同时创建集合对象:
作为新收藏的暗栏
词典
要创建字典对象,首先设置对库文件微软脚本运行时的引用。您可以编写如下声明字典对象变量的代码:
作为新词典的暗淡格言
或者:
作为字典的模糊字典
设置字典=新字典
为元素赋值。
1.您不能重新分配集合中的现有元素。
2.您可以修改字典元素的值。当给指定键的字典元素赋值时,如果指定键的字典元素已经存在,元素的值将被修改。如果指定键的字典元素不存在,将添加一个新的字典元素。
3.集合和字典都是对象,所以在返回整个对象时,应该使用Set语句。
对元素的访问。
数组、集合和字典的不同存储结构决定了访问它们的元素的不同。
排列
每个元素都被放置在一个固定的位置,所以我们需要知道它的索引来访问它。例如:
Dim MyArray(5)为整数
作为整数变暗
对于i=0至5
MyArray(i)=i
Nexti
访问第二个元素。
调试。打印我的阵列(1)
默认情况下,数组的索引值从0开始。
聚集
下面的代码首先声明一个集合对象,然后在添加元素项时定义一个键值:
作为集合的暗栏
将rng调成Excel。范围
将文件名改为字符串
设置列=新集合
sRangeName="RangeName "
设置rng=范围(名字)
添加列名
此时,当您想要从集合中获取特定元素项时,可以指定其位置(索引值)或使用键值。如果您知道它是添加到集合中的第一个,并且它的位置没有改变,则可以使用索引值:
第(1)栏
集合的索引值基于1。您也可以使用键值:
栏项目(姓名)
集合的索引值从1开始。
词典
字典中有一个唯一标识元素的键,所以我们只需要使用这个键来访问元素,而不需要知道它的具体存储位置。
下面的代码将对象添加到字典中,其语法与将元素项添加到集合中非常相似,只是键和元素参数的位置相反:
作为脚本。词典
将rng调成Excel。范围
将文件名改为字符串
设置dict=新脚本。词典
sRangeName="RangeName "
设置rng=范围(名字)
迪克特。添加名字
您可以使用以下语句获取指定键所在的元素项:
迪克特。项目(名称)
添加元素
添加元素时,集合参数的位置与字典的位置正好相反,例如:
向集合中添加元素。
添加项目:=6,键:=“东区”。
向字典中添加元素。
迪克特。添加Key:=“东区”,Item:=6。
但是,对于集合,没有内置方法来检查指定的键是否已经存在,但是可以使用Exists方法来检查字典中是否存在手指键。
什么时候用?
编程时,通常要求我们可以创建一个对象,这个对象可以存储一组相关的值,并且可以通过这个对象轻松处理存储的值。数组、集合和字典可以实现这个目标。
排列
当有许多相同类型的数据需要逐一处理时,可以使用数组。但是数组的大小在使用前通常是固定的,所以在知道数据量的前提下使用数组。
聚集
可以随意在集合中添加或删除元素,因此最好对不同数量的数据使用集合。与数组相比,集合更容易使用,尤其是添加元素和遍历元素。但是,该集合是只读的。您可以添加或删除集合中的元素,但不能修改它们的值。
词典
当您有一系列数据时,您可以使用字典,但是您需要获取非重复元素的值。
字典和收藏。
集合是一种很好的数据结构。Excel对象模型中几乎所有的容器结构都使用集合,如工作簿、工作表等。
然而,字典有更多的内置方法,这使得它比集合更方便使用。尤其是以下三种方法:
1.Exists方法:用于判断字典中是否存在指定的关键字。(如果要检查集合中是否存在指定的键,则需要编写一段额外的代码来完成它。)
2.Keys方法:返回一个包含字典中所有键的数组。(同样,为了在集合中达到相同的目的,需要编写遍历和填充的代码。)
3.RemoveAll方法:清除字典中的所有元素。
此外,如前所述,字典允许我们修改键和值。此外,因为Dictionary对象使用哈希表和一些高级排序和索引算法,所以字典比集合运行得更快。
数组和集合
使用集合对象比使用数组更容易访问和维护:
1.集合成员可以添加在现有成员之前或之后,具体取决于现有成员的键值或索引值。
2.集合成员可以通过其键值或索引值来访问。
3.集合成员可以通过其键值或索引值来删除。但是,当删除具有一个索引值的多个成员时,应该从后面开始删除,即从索引值较高的成员到索引值较低的成员,因为每次删除一个成员时,都必须对集合进行重新索引。
数组字典,集合。
如前所述,在数组中,可以存储用户定义的类型。但是,不能在字典或集合中存储用户定义的类型。
版权声明:VBA教程:数组、集合和字典是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。