|
本帖最后由 happytiger2012 于 2013-1-19 16:07 编辑
Sub sz1()
'arr不能声明类型
Dim arr()
arr = Array(1, 2, 3, 4, 5)
Stop
End Sub
Sub sz2()
Dim str As String
Dim arr '不能加括号
str = "a-b-c-d-e"
arr = VBA.Split(str, "-")
Debug.Print arr(2)
End Sub
哪位大虾能给我解释一下,为什么sz1这个过程声明数组的时候arr要加括号但不能声明数据类型?sz2这个过程声明arr的时候不能加括号?搞不明白!
个人认为有用帮助是:“想要将一个数组赋值给另一个数组,确定在左侧的是大小可以调节的数组,且类型匹配。 ”
意思是,当发生数组给数组时,必须同时满足:
条件1:左侧的是可变数组
条件2:两边的数组,类型匹配
在sz1()中,并非不能声明类型。
而是声明了不匹配的类型。
Dim arr() As Integer '例如赋值号左边是Integer,右边是Variant,两边类型不匹配。故提示“类型不匹配”。
Dim arr() As Variant '赋值号左边是Variant,右边是Variant,两边类型匹配,所以可以。
在sz2()中,并非不能加括号。
而是加了括号就是数组变量名,就是数组给数组赋值,就需同时满足2个条件。
Dim arr() '赋值号左边是Variant,右边是string,两边类型不匹配,所以不行。故提示“类型不匹配”。
Dim arr() As String '赋值号左边是string,右边是string,两边类型匹配,所以可以。
Dim arr '赋值号左边是variant 变量。见下图的帮助解释。
|
|