1.单维数组1.1 声明数组声明1个1~50的数组,可以将区间值写出来 Option Base 1Dim SZ(50) As String 1.2 数组赋值当数组声明好了之后,我们可以给数组赋值
2.多维数组2.1 二维数组VBA还支持 横向、纵向 同时存在的列表型数组,比如,我们声明一个3*20的数组 Option Base 1Dim SZ(3,20) As String 2.2 三维数组假设,有4个高3层、宽5格的货架,用数组可以这样来表示
2.3 多维数组的赋值方式与单维数组的赋值方式一样 Sub dwsz() Dim SZ(3,2,4)As String SZ(1,2,3) = 'Max'End Sub 3.动态数组3.1 声明数组当无法确定数组的存储元素多少时,我们可以先声明一个空的数组:
3.2 数组赋值方法1:使用Array函数数组内,参数间用英文逗号分隔,参数支持数字、文本 Sub ArrayTest() Dim arr As Variant '定义变量时,类型必须为Variant型 '将1到10十个自然数赋值给数组arr arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) MsgBox 'arr数组的第2个元素为' & arr(1)End Sub 方法2:使用Split函数数组内,参数间用英文逗号分隔,参数仅支持文本
数组的索引号默认从0开始,无论是否已写入'Option Base 1'语句 方法3:使用Range函数可以把一个单元格区域的值存到数组里,也可以把数组里的值写到单元格里去 Sub RngArr() Dim arr As Variant arr = Range('A1:B2').Value '将A1:B2单元格的内容存到数组arr里 Range('C1:D2').Value = arr '将arr的数据写入到C1:D2单元格里去End Sub 4.数组的其他操作4.1 数组索引(UBound、LBound)通过UBound和LBound函数,可以计算数组的最大、最小索引号
如果是一个多位数组,还需要指定数组的维度,比如: Sub arrcount2() Dim arr(49, 100) MsgBox '第1维的最大索引是:' & UBound(arr, 1) & Chr(13) & '第2维的最小索引是:' & LBound(arr, 2)End Sub 4.2 数组拼接(join)使用join函数,可以将数组里的所有元素,通过一个指定的拼接符号,拼成一个新的字串
4.3 将数组写入单元格(range)使用range函数,可以将数组写入单元格、区域 Sub ArrToRng() Dim arr As Variant arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) '将数组的第3个元素写入单元格A1 Range('A1').Value = arr(3) '将数组批量写入单元格(横向) Range('B1', 'J1').Value = arr '将数组批量写入单元格(纵向) Range('A2:A10').Value = Application.WorksheetFunction.Transpose(arr)End Sub 无论1维数组还是2维数组,在写入单元格区域时,区域的大小,与数组的大小需要保持一致
|
|
来自: 阿白mvo3hep7cv > 《Excel攻略》