手机版

VBA教程:数组、集合和字典

时间:2021-09-27 来源:互联网 编辑:宝哥软件园 浏览:

在之前的一些文章中,我们详细了解了三种常用的数据结构:集合、数组和字典。在这篇文章中,我们将简要总结一下,看看它们之间有什么不同,从而巩固我们所学的知识。

存储类型。

排列

数组是一组同名的同质元素。它可以用来存储多个相同类型的变量。

聚集

集合可用于存储不同的数据类型。

词典

字典可以用来存储不同的数据类型。

请注意,在数组中,您可以存储用户定义的类型。但是,不能在字典或集合中存储用户定义的类型。

变量声明

排列

声明数组变量时,可以指定数组的大小,例如:

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或者邮箱删除。