VBA数组详解

VBA数组详解

A

A

默认

护眼

夜间

阅读(62.4k)

书签

赞(0)

分享

我要纠错

VBA数组详解

2021-12-08 14:30 更新

声明数组因为数组也是变量,所以,你必须用声明其它变量的类似方法声明数组——使用Dim语句。当你声明一个数组时,你便设定了该数组储存数据所需要的内存空间。我们来看看一个数组声明的例子:Dim cities(6) As String

Dim daysOfWeek(7) As String

Dim lotto(6) As Integer

Dim exchange(5, 3) As Variant

注意,变量名称后面带有括号以及括号里有数字。一维数组要求括号里带一个数字,这个数字决定了这个数组能够储存的最大成员数。二维数组后面总是带有两个数字——第一个数字是行索引号,而第二个数字是列索引号。在上面的例子里,数组exchange最多可以储存15个数据(5*3=15)。数组声明的最后一部份是定义数组将要储存数据的数据类型。数组可以储存下列任何一种数据类型:Integer, Long, Single, Double, Variant, Currency, String, Boolean, Byte, or Date。当你声明了一个数组,VB会自动占据足够的内存空间,分配的内存空间取决于该数组的大小和数据类型。当你声明一个名叫lotto的带有6个成员的一维数组时,VB将留出12个字节——数组的每个成员各占2个字节(回想整型数据类型为2个字节,因此2*6=12)。数组越大,储存数据需要的内存空间就越大。因为数组会吃掉很多内存,并因此影响你电脑的运行,因此,建议你仅仅根据你可能使用的成员数来声明数组。数组的上界和下界VBA默认将数组的第一个成员设置为0(索引号),因此,数字1代表数组中的第二个成员,而数字2则代表第三个,等等。因为数字编号起始于0,所以,一维数组cities(6)包含从0到6的七个成员。如果你宁愿从1开始计数你数组里的成员,那么你可以使用Option Base 1语句来强制指定该数组的下界。该指令必须置于VBA模块任何Sub语句上面的声明部分。如果你不明确Option Base 1,那么VBA在使用数组是就会假定使用Option Base 0来从0开始编号你的数组成员。你也可以让数组从除0或1之外的数字开始编号,要达到该目的,你在声明数组变量时就必须明确该数组的边界。数组的边界是指它最小和最大的索引号。我们来看看下面的例子:Dim cities(3 To 6) As Integer上面的语句声明了一个带有四个成员的一维数组。数组名称后面括号里的数字明确了数组的下界(3)和上界(6)。该数组的第一个成员编号为3,第二个为4,第三个为5,以及第四个为6。注意下界和上界之间的关键字To。技巧:数组范围Dim语句明确的数组的下标区间就称为数组的范围,例如:Dim mktgCodes(5 To 15)在VBA过程里使用数组你声明了数组后,就必须给该数组的每个成员赋值,这也经常成为“填充数组”。我们来尝试使用一维数组有规划地显示六个美国城市的清单:1. 打开一个新工作簿,并保存为Chap07.xls2. 切换到VB编辑器窗口,并重新命名VBA工程为Tables3.插入一新模块,重新命名为StaticArrays4.输入下列过程FavoriteCities:' start indexing array elements at 1 从1开始给数组成员编号

Option Base 1

Sub FavoriteCities()

'now declare the array

Dim cities(6) As String

'assign the values to array elements

cities(1) = "Baltimore"

cities(2) = "Atlanta"

cities(3) = "Boston"

cities(4) = "Washington"

cities(5) = "New York"

cities(6) = "Trenton"

'display the list of cities

MsgBox cities(1) & Chr(13) & cities(2) & Chr(13) _

& cities(3) & Chr(13) & cities(4) & Chr(13) _

& cities (5) & Chr(13) & cities(6)

End Sub在FavoriteCities过程开始之前,缺省的索引编号方式改变了,注意,Option Base 1语句是位于模块窗口Sub语句之上的。该语句告诉VB给数组的第一个成员赋值数字1,而不是缺省的0。数组cities()声明为带六个成员的字符串类型变量。然后,给数组的每个成员都赋上了值。最后的语句使用Msgbox函数显示城市清单。当你运行该过程时,城市名称将会出现在分开的行上(参见图7-1)。你可以改变显示数据的顺序,改变索引号。图7-1 你可以用Msgbox函数来显示一维数组的成员5. 运行FavoriteCities过程并且检查结果6. 修改FavoriteCities过程,让它逆序显示城市名称(从6到1)技巧: 数组成员的初始值在给数组成员赋值之前,该成员具有缺省值。数字变量的缺省值为0,而字符串变量的缺省值为空字符串。

以上内容是否对您有帮助:

在文档使用的过程中是否遇到以下问题:

内容错误

更新不及时

链接错误

缺少代码/图片示列

太简单/步骤待完善

其他

更多建议:

提交建议

← 初步认识VBA数组

VBA数组和循环语句 →

写笔记

我要补充

精选笔记

相关推荐

中国移动旗下精品app有哪些 中国移动旗下精品app推荐
日博best365下拉飞机XLCOKK

中国移动旗下精品app有哪些 中国移动旗下精品app推荐

07-28 👁️ 9399
好玩的小镇游戏有哪些 2023有趣的小镇游戏推荐
外勤365老版本下载怎样下载

好玩的小镇游戏有哪些 2023有趣的小镇游戏推荐

06-28 👁️ 8043
发明专利从初审到公开的时间
48365365

发明专利从初审到公开的时间

07-14 👁️ 449
君威和奥迪a4l哪个好
日博best365下拉飞机XLCOKK

君威和奥迪a4l哪个好

07-30 👁️ 6303