练习小课堂

如果1个学生姓名占1个单元格,把1个存储100个学生姓名的一维数组“七年级”写入Excel工作表的单元格里,会占多大的区域?

img019参考答案

因为1个单元格存储一个学生姓名,所以把存储100个学生姓名的一维数组写入Excel工作表中应占同一行里连续的100个单元格,如:A1:CV1 区域。

img062 声明动态数组

如果在声明数组时,不能确定会往这个数组里存储多少个元素,即不能预知数组的大小,可以在首次定义数组时括号内为空,写成:

Dim 数组名称()

然后在程序中使用ReDim语句重新指定它的大小。

如:A列有很多职工姓名,想把这些职工姓名存储在数组arr中,但预先并不知道A列的职工姓名有多少个,在定义数组时代码可以这样:

img127

用这样的方式声明的数组称为动态数组。

注意:已经定义大小的数组同样可以用ReDim语句重新指定它的大小。

img062 其他常用的创建数组的方式

方法一:使用Array函数创建数组

img128

运行上述代码,结果如图3-15所示。

img129

图3-15 使用Array函数创建数组

方法二:使用 Split 函数创建数组

Split 函数把一个文本字符串按照指定的分隔符分开,返回一个一维数组,数组最小索引号是0。

img130

运行上述代码,结果如图3-16所示。

img131

图3-16 使用Split函数创建数组

方法三:通过 Range 对象直接创建数组

如果想把一个单元格区域的值直接存储到数组里,可以直接把单元格区域的值赋给变量名。

如:

img132

运行上述代码,运行结果如图3-17所示。

img133

图3-17 通过Range对象创建数组

img062 UBound和LBound函数

使用 UBound 和 LBound 函数可以计算数组的最大和最小索引号。

一个一维数组arr,要想知道它的最大索引号是多少,代码为:

img134

如果想知道它的最小索引号,代码为:

img135

如果想知道数组有多少个元素,可以使用代码:

img136

如:

img137

运行上述代码,结果如图3-18所示。

img138

图3-18 使用UBount和LBound函数

如果是一个多维数组,求它的最大或最小索引号,还需指定数组的维数,如:

img139

运行上述代码,结果如图3-19所示。

img140

图3-19 数组的最大索引号

img062 Join函数

Join函数将一个一维数组里的元素使用指定的分隔符连接成一个新的字符串。

img141

运行上述代码,结果如图3-20所示。

img142

图3-20 使用Join函数

img062 将数组写入单元格区域

如想将一维数组arr里的第23个元素写入活动工作表中的A1单元格,代码为:

img143

也可以将数组里的所有元素批量写入一个单元格区域:

img144

运行上述代码,结果如图3-21所示。

img145

图3-21 将一维数组批量写入单元格区域

无论是一维数组还是二维数组,将数组批量写入单元格区域时,单元格区域的大小必须与数组的大小一致,如:

img146

运行上述代码,结果如图3-22所示。

img147

图3-22 单元格的大小必须与数组的大小一致