解决方案

VBA数组详解

seo靠我 2023-09-25 03:11:41

声明数组

因为数组也是变量,所以,你必须用声明其它变量的类似方法声明数组——使用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)

 

在VBA过程里使用数组

你声SEO靠我明了数组后,就必须给该数组的每个成员赋值,这也经常成为“填充数组”。我们来尝试使用一维数组有规划地显示六个美国城市的清单:

1.  打开一个新工作簿,并保存为Chap07.xls

2.  切换到VB编辑器SEO靠我窗口,并重新命名VBA工程为Tables

3.插入一新模块,重新命名为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)
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2