vba 创建数组的各种方式

vba 创建数组的各种方式

使用Array函数创建数组:

一维数组

如果将一组已知的数据常量存储到数组中,使用VBA中的Array函数。 使用Array函数创建数组,该数组应声明为一个Variant类型的变量。

Array函数的参数是一个用英文逗号(,)隔开的数据列表(文本需写在英文半角双引号间),参数中有几个数据,得到的数组就有几个元素,如果不设置参数,函数返回的是一个不包含数据的空数组。

如:

Sub ArrayTest()

Dim arr As Variant

arr=Array(1,2,3,4,5,6,7,8,9,10)

MsgBox "arr数组的第2个元素为:" & arr(1)

End Sub

使用Array函数创建的数组索引号默认从0开始,除非已经在模块第1句写入了 "OPTION BASE 1"语句。如下:

Option Base 1 #声明数组索引号从1开始 语句

Sub a()

Dim arr As Variant

arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

MsgBox "arr数组的第2个元素为:" & arr(1)

End Sub

二维数组 (行,列)

二维数组不用Array函数创建,用关键字[ ],{},数组赋值语句如下:

Sub a()

dim arr() as variant

arr = [{1, "陈达文" ; 2, "杨帆" ; 3, "李宗伟" }]

msgbox arr(1,1) #注:二维数组的索引号均从1开始,无论是单元格区域赋值还是直接语句赋值,均从1开始,不从0开始,注意!

End Sub

结果:

1

注:二维数组的索引号均从1开始,无论是单元格区域赋值还是直接语句赋值,均从1开始,不从0开始,注意!

三维数组 (张,行,列)

三维数组一般用到的较少,具体的赋值创建方法如下:

Dim arr(),i& #&为长整型的替代符

ReDim arr(1 to sheets.count)

For i=1 To Sheets.Count

arr(i)=Sheets(i).Range("A2:D5")

Next

使用Split函数创建数组

如果要将一个字符串按指定的分隔符拆分,将各部分结果保存到一个数组中,可以使用VBA中的Split函数。

Sub SplitTest()

Dim arr As Variant

arr=Split("叶枫,空空,小月,老祝",",")

MsgBox "arr数组中的第2个元素是:" & arr(1) #无论是否在模块中写入"OPTION BASE 1",Split函数返回数组的索引号都是从0开始。

End Sub

Split函数返回的总是一个索引号从0开始的一维数组。

通过单元格区域直接创建数组

如果想把单元格区域中保存的数据直接存储到一个数组中,可以通过直接赋值的方法解决。(注:二维数组及以上,索引均从1开始。)

Sub RngArr()

Dim arr As Variant #存储数据的数组应定义成一个Variant类型的变量

arr=Range("A1:C3").Value

Range("E1:G3").Value=arr #将数组中保存的数据写入单元格区域时,单元格区域的行列数必须与数组的维数相同。

End Sub

相关推荐

曼德拉草
365足球体育亚洲版

曼德拉草

📅 09-07 👁️ 1552