Excel VBA数组与表格区域的关系

如题所述

Array(arglist) 返回一个包含数组的 Variant。
所需的 arglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建 一个长度为 0 的数组。
取工作表区域的转置到数组:arr=Application.Transpose([a1:c5]) ‘此时arr是转置成3行5列的数组,arr(1 to 3,1 to 5)
[e1:i3]=arr ‘此时3行5列。
数组间也可以转置:arr1=Application.Transpose(arr)
取数组arr的第n列赋值到某列区域:[e1:e5]=Application.Index(arr, 0, n)
也可写成 [e1:e5]=Application.Index(arr, , n)
赋值产生一个新数组:arr1=Application.Index(arr,0 , n)
取数组arr的第n行赋值到某行区域:[a6:c6]=Application.Index(arr,n ,0 )
也可写成 [a6:c6]=Application.Index(arr,n ) 省略0,也省略了“,“
赋值产生一个新数组:arr1=Application.Index(arr, n )
1、一维转二维。
Sub t9()
arr = Array(1, 35, "a", 4, 13, "b")
arr1 = Application.Transpose(arr)
MsgBox arr1(2, 1) ‘转换后的数组是1列多行的二维数组
End Sub

2、二维数组转一维。

Sub t2()
arr2 = Range("A1:B4")
arr3 = Application.transpose(Application.Index(arr2, , 2)) '取得arr2第2列数据并转置成1维数组
MsgBox arr3(2,)
End Sub
温馨提示:答案为网友推荐,仅供参考
相似回答