练习小课堂
如果1个学生姓名占1个单元格,把1个存储100个学生姓名的一维数组“七年级”写入Excel工作表的单元格里,会占多大的区域?
参考答案
因为1个单元格存储一个学生姓名,所以把存储100个学生姓名的一维数组写入Excel工作表中应占同一行里连续的100个单元格,如:A1:CV1 区域。
声明动态数组
如果在声明数组时,不能确定会往这个数组里存储多少个元素,即不能预知数组的大小,可以在首次定义数组时括号内为空,写成:
Dim 数组名称()
然后在程序中使用ReDim语句重新指定它的大小。
如:A列有很多职工姓名,想把这些职工姓名存储在数组arr中,但预先并不知道A列的职工姓名有多少个,在定义数组时代码可以这样:
用这样的方式声明的数组称为动态数组。
注意:已经定义大小的数组同样可以用ReDim语句重新指定它的大小。
其他常用的创建数组的方式
方法一:使用Array函数创建数组
运行上述代码,结果如图3-15所示。
图3-15 使用Array函数创建数组
方法二:使用 Split 函数创建数组
Split 函数把一个文本字符串按照指定的分隔符分开,返回一个一维数组,数组最小索引号是0。
运行上述代码,结果如图3-16所示。
图3-16 使用Split函数创建数组
方法三:通过 Range 对象直接创建数组
如果想把一个单元格区域的值直接存储到数组里,可以直接把单元格区域的值赋给变量名。
如:
运行上述代码,运行结果如图3-17所示。
图3-17 通过Range对象创建数组
UBound和LBound函数
使用 UBound 和 LBound 函数可以计算数组的最大和最小索引号。
一个一维数组arr,要想知道它的最大索引号是多少,代码为:
如果想知道它的最小索引号,代码为:
如果想知道数组有多少个元素,可以使用代码:
如:
运行上述代码,结果如图3-18所示。
图3-18 使用UBount和LBound函数
如果是一个多维数组,求它的最大或最小索引号,还需指定数组的维数,如:
运行上述代码,结果如图3-19所示。
图3-19 数组的最大索引号
Join函数
Join函数将一个一维数组里的元素使用指定的分隔符连接成一个新的字符串。
运行上述代码,结果如图3-20所示。
图3-20 使用Join函数
将数组写入单元格区域
如想将一维数组arr里的第23个元素写入活动工作表中的A1单元格,代码为:
也可以将数组里的所有元素批量写入一个单元格区域:
运行上述代码,结果如图3-21所示。
图3-21 将一维数组批量写入单元格区域
无论是一维数组还是二维数组,将数组批量写入单元格区域时,单元格区域的大小必须与数组的大小一致,如:
运行上述代码,结果如图3-22所示。
图3-22 单元格的大小必须与数组的大小一致