因为数组也是变量,所以,你必须用声明其它变量的类似方法声明数组——使用Dim语句。当你声明一个数组时,你便设定了该数组储存数据所需要的内存空间。
我们来看看一个数组声明的例子:Dim citieSEO靠我s(6) As String Dim daysOfWeek(7) As String Dim lotto(6) As Integer Dim exchaSEO靠我nge(5, 3) As Variant注意,变量名称后面带有括号以及括号里有数字。一维数组要求括号里带一个数字,这个数字决定了这个数组能够储存的最大成员数。二维数组后面总是带有两个数字——第一个数字SEO靠我是行索引号,而第二个数字是列索引号。在上面的例子里,数组exchange最多可以储存15个数据(5*3=15)。
数组声明的最后一部份是定义数组将要储存数据的数据类型。数组可以储存下列任何一种数据类型:SEO靠我Integer, Long, Single, Double, Variant, Currency, String, Boolean, Byte, or Date。
当你声明了一个数组,VB会自动占据足够SEO靠我的内存空间,分配的内存空间取决于该数组的大小和数据类型。当你声明一个名叫lotto的带有6个成员的一维数组时,VB将留出12个字节——数组的每个成员各占2个字节(回想整型数据类型为2个字节,因此2*6SEO靠我=12)。数组越大,储存数据需要的内存空间就越大。因为数组会吃掉很多内存,并因此影响你电脑的运行,因此,建议你仅仅根据你可能使用的成员数来声明数组。
VBA默认将数组的第一个成员设置为0SEO靠我(索引号),因此,数字1代表数组中的第二个成员,而数字2则代表第三个,等等。因为数字编号起始于0,所以,一维数组cities(6)包含从0到6的七个成员。如果你宁愿从1开始计数你数组里的成员,那么你可SEO靠我以使用Option Base 1语句来强制指定该数组的下界。该指令必须置于VBA模块任何Sub语句上面的声明部分。如果你不明确Option Base 1,那么VBA在使用数组是就会假定使用OptionSEO靠我 Base 0来从0开始编号你的数组成员。
你也可以让数组从除0或1之外的数字开始编号,要达到该目的,你在声明数组变量时就必须明确该数组的边界。数组的边界是指它最小和最大的索引号。我们来看看下面的例子:SEO靠我
Dim cities(3 To 6) As Integer上面的语句声明了一个带有四个成员的一维数组。数组名称后面括号里的数字明确了数组的下界(3)和上界(6)。该数组的第一个成员编号为3,第二个为4SEO靠我,第三个为5,以及第四个为6。注意下界和上界之间的关键字To。
技巧:
数组范围
Dim语句明确的数组的下标区间就称为数组的范围,例如:Dim mktgCodes(5 To 15)
你声SEO靠我明了数组后,就必须给该数组的每个成员赋值,这也经常成为“填充数组”。我们来尝试使用一维数组有规划地显示六个美国城市的清单:
1. 打开一个新工作簿,并保存为Chap07.xls
2. 切换到VB编辑器SEO靠我窗口,并重新命名VBA工程为Tables3.插入一新模块,重新命名为StaticArrays
4.输入下列过程FavoriteCities:start indexing array elements aSEO靠我t 1 从1开始给数组成员编号 Option Base 1 Sub FavoriteCities() now declare the array SEO靠我 Dim cities(6) As String assign the values to array elements cities(1) = "BaltimSEO靠我ore" cities(2) = "Atlanta" cities(3) = "Boston" cities(4) = "Washington" SEO靠我 cities(5) = "New York" cities(6) = "Trenton" display the list of cities SEO靠我 MsgBox cities(1) & Chr(13) & cities(2) & Chr(13) _ & cities(3) & Chr(13) & cities(4) & Chr(SEO靠我13) _ & cities (5) & Chr(13) & cities(6) End Sub在FavoriteCities过程开始之前,缺省的索引编号方式改变了,注SEO靠我意,Option Base 1语句是位于模块窗口Sub语句之上的。该语句告诉VB给数组的第一个成员赋值数字1,而不是缺省的0。
数组cities()声明为带六个成员的字符串类型变量。然后,给数组的每个成SEO靠我员都赋上了值。最后的语句使用Msgbox函数显示城市清单。当你运行该过程时,城市名称将会出现在分开的行上(参见图7-1)。你可以改变显示数据的顺序,改变索引号。
图7-1 你可以用Msgbox函数来显示SEO靠我一维数组的成员
5. 运行FavoriteCities过程并且检查结果
6. 修改FavoriteCities过程,让它逆序显示城市名称(从6到1)网站备案号:浙ICP备17034767号-2