一、关于数组声明:
Sub ceshi( )
Dim arr1(0 To 4) As Integer 'arr1变量的类型是Integer()
Dim arr2(1 To 3) 'arr2变量的类型是Variant()
Dim arr3() As Integer 'arr3变量的类型是Integer()
Dim arr4() 'arr4变量的类型是Variant()
Dim arr5 'arr5变量的类型是Variant
'arr4和arr5的区别在于arr4只能赋值数组,但是arr5还可以赋值Integer、Range等任意变量类型
'arr3,arr4可以通过如下方式赋值。但是arr1,arr2,arr3不能。
'说明要将数组直接赋值给变量,该变量不能定义类型和数组大小
arr4 = Array(2, 4, 5)
arr5 = [{3,6}]
arr4 = Range("a1:a3").Value
'arr1和arr3都属于Integer(),只有arr1可以赋值给arr3,反之不行。
arr1(2) = 3
arr1(3) = 99
arr3 = arr1
'只有定义了数组大小的变量arr1,arr2才能用索引的方式逐个赋值。
arr2(2) = "可以存储文本变量"
arr1(1) = 34
'arr3,arr4,arr5需要以下方式重新定义数组大小,才能用索引赋值。
ReDim arr3(4)
ReDim arr5(1 To 10)
arr3(2) = 3
Set arr5(9) = Range("A1:A3")
'定义大小的动态数组,还可以直接将数组赋值给变量。
ReDim arr4(2 To 100)
arr4 = Array(2, 1)
'特别注意:下面2个写法,不是将Range赋值给数组,而是将数组赋值给数组,因为省略了Range.value
arr4 = Range("B1:C3")
arr5 = Range("E1")
'因为只有arr5才能赋值Range变量,而且必须用以下方式:
Set arr5 = Range("E1")
End Sub