Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。 之前的一些文章,我们详细解了集合、数组和字典这三种常用的数据结构。在本文中,我们简单小结一下,看看它们之间有哪些区别,以巩固所学的知识。 存储的类型 数组 数组是一组具有相同名称的同类元素。可用来存储多个相同类型的变量。 集合 集合可以用来存储不同的数据类型。 字典 字典可以用来存储不同的数据类型。 注意,在数组中,可以存储用户定义类型。然而,不能在字典或集合中存储用户定义类型。 变量声明 数组 在声明数组变量时,可以指定数组的大小,如: Dim MyArray(5) As Integer 也可以先不指定数组的大小: Dim MyArray() As Integer 在使用之前,须指定其大小: ReDim MyArray(5) 集合 可以先声明集合变量: Dim col As Collection 在需要使用该集合前创建集合对象: Set col = New Collection 也可以在声明的同时创建集合对象: Dim col As New Collection 字典 创建字典对象,先要设置对库文件Microsoft Scripting Runtime的引用。可以编写声明字典对象变量的代码如下: Dim dict As New Dictionary 或者: Dim dict As Dictionary Set dict = New Dictionary 对元素赋值 1.不能对集合中已有元素重新赋值。 2.可以修改字典元素的值。在给指定键的字典元素赋值时,如果指定键的字典元素已存在,则会修改该元素的值。如果指定键的字典元素不存在,则会添加新字典元素。 3.集合、字典都是对象,在返回整个对象时,应使用Set语句。 对元素的访问 数组、集合、字典的存储结构不同,决定了访问其元素的差异。 数组 每个元素放置在固定的位置,我们需要知道其索引,来访问它。例如: Dim MyArray(5) As Integer Dim i As Integer For i = 0 To 5 MyArray(i) = i Nexti ‘访问第2个元素 Debug.Print MyArray(1) 数组的索引值默认从0开始。 集合 下面的代码先声明集合对象,然后在添加元素项时定义键值: Dim col As Collection Dim rng As Excel.Range Dim sRangeName As String Set col = New Collection sRangeName= “RangeName” Set rng = Range(sRangeName) col.Add rng, sRangeName 此时,想从该集合中获取特定元素项时,可以指定其位置(索引值),或者使用键值。如果你知道其是第一个添加到集合中的且位置没有变化,可以使用索引值: col.Item(1) 集合的索引值基于1。也可以使用键值: col.Item(sRangeName) 集合的索引值从1开始。 字典 字典中有唯一标识元素的键,我们只需要使用这个键来访问元素,而不需知道其具体的存放位置。 下面的代码添加对象到字典中,其语法与添加元素项到集合中非常相似,只是键和元素参数的位置相反: Dim dict As Scripting.Dictionary Dim rng As Excel.Range Dim sRangeName As String Set dict = New Scripting.Dictionary sRangeName= “RangeName” Set rng = Range(sRangeName) dict.Add sRangeName, rng 可以使用下面的语句来获取指定键所在的元素项: dict.Item(sRangeName) 添加元素 添加元素时,集合与字典的参数位置刚好相反,例如: ‘在集合中添加元素 col.Add Item:=6, Key:=”东区” ‘在字典中添加元素 dict.Add Key:=”东区”,Item:=6 然而,对于集合,没有内置的方法来检查是否已存在指定的键,但是可以使用Exists方法检查字典中是否存在指字键。 什么时候使用 在编程时,通常要求我们能创建一个对象,能够存放一组相关的值,并且能够通过该对象便捷地处理存储的值,数组、集合、字典都能实现这个目的。 数组 当有许多同类型的数据需要逐一处理时,可以使用数组。然而,数组的大小在使用之前通常是固定的,因此在知道数据数量的前提下使用数组。 集合 集合可任意添加或删除元素,因此对于数量变化的数据使用集合更好。相对于数组,集合更容易使用一些,特别是添加元素、遍历元素。然而,集合是只读的,你可以添加或删除集合中的元素,但不能修改其值。 字典 有一系列数据,但是需要获取不重复元素值时,可以使用字典。 字典与集合 集合是一种很好的数据结构,在Excel对象模型中几乎所有的容器结构都是使用集合,例如:Workbooks、Worksheets等。 然而,字典有更多的内置方法,使得其使用比集合更方便。特别是下列3个方法: 1.Exists方法:用来判断字典中是否存在指定的键。(如果要在集合中检查指定的键是否存在,则需要额外编写一段代码来完成) 2.Keys方法:返回一个数组,包含字典中所有的键。(同样,集合中实现相同的目的需要编写遍历和填充的代码) 3.RemoveAll方法:清除字典中所有的元素。 此外,正如前面提到的,字典允许我们修改键和值。并且,由于Dictionary对象使用了散列表和一些先进的排序和索引算法,因此字典的运行速度也快于集合的速度。 数组与集合 与使用数组相比,使用集合对象更便于访问和维护: 1.集合成员可以添加在一个已经存在成员的前面或后面,这取决于该已有成员的键值或索引值。 2.集合成员可以通过它们的键值或索引值访问。 3.集合成员可以通过它们的键值或索引值删除。但是,利用一个索引值删除多个成员时,应该从后面开始删除,即从索引值较高的成员到索引值较低的成员,因为每次删除成员后集合就要重新建立索引。 数组与字典、集合 正如前面提到的,在数组中,可以存储用户定义类型。然而,不能在字典或集合中存储用户定义类型。 Excel整体界面趋于平面化,显得清新简洁。流畅的动画和平滑的过渡,带来不同以往的使用体验。 |
温馨提示:喜欢本站的话,请收藏一下本站!