优秀的编程知识分享平台

网站首页 > 技术文章 正文

VBA学习笔记:数组:数组的声明二(vba 声明数组变量)

nanyue 2024-09-15 23:22:40 技术文章 5 ℃

数组声明的释义,示例1:dim arr(9);等同于dim arr(0 to 9)的简写,表示 arr是个一维数组,其维度从0到9。其上标省略的情况下(to之前的数字称为上标,to之后的数字称为下标。相对于表格,第1行在上,第10行在下同样结构),系统都是默认从0起。示例2:Dim arr(9,10);等同dim arr(0 to 9,0 to 10)的简写,表示arr是个二维数组。

一维数组的维度相当于列序数,一维数组输出到表格时数据都在同一行,输出到表格后,arr(2)的数据是在arr(1)的右边的,所以维数1,2,3相当表格列的序数在增加。二维数组的第一个维度相当于行序数,第二个维数相当于列序数。一维数组相当于二维数组的第一个维度回定在1 to 1 的二维数组。如图:

二维数组的标号与行列的对应关系,如下图。数据从数组输出到表格时也是如此的对应关系,简单点的叙述,就是数组()里“,”之前表示的是行,在第几行,后面的数字表示在第几列。

在数组的使用中,我们常会碰到并不知道数据有多少的情况,不能准确声明数组。为此我们用redim 来更改数组。例:在开始声明dim arr(),当我们需要数组时redim arr(9)。(注:声明dim arr() 或dim arr,就是括号内不能有数字; 像dim arr(6) 然后redim arr(9) 就会出错)。但是redim 改变数组长度时,数组中已记录的数据会丢失。为了保存住数组中的数据,要用redim preserve “数组”。

使用redim preserve,数组变成了个可变化长度的数据记录器,如图将arr(1 to 4,1 to 4) 改变成arr(1 to 4,1 to 5) ,数组原先的值也还在。

但是Preserve 只能改变数组的一个维度值,并且要是数组的最后一个维度;也就是只能改二维数组的列序数。通常处理数据都是向下添加,就是行方向加值。需要将数组转置了再使用这功能。

顺便提提 取数组上下标的函数:Lbound与Ubound;语法:Lbound(数组名),Ubound(数组名);等同于Lbound(数组名,1),Ubound(数组名,1),返回第一个维度上的上标与下标。Lbound(数组名,2),Ubound(数组名,2),返回第二个维度上的上标与下标。

Tags:

最近发表
标签列表