我刚才测试了一下。好像可以。当被赋值的a没有经过redim的时候也可以 代码如下: Type newarr abcd() As String lenth As Long End TypePrivate Sub Form_Load() Dim mynewarr() As newarr ReDim mynewarr(3)ReDim mynewarr(1).abcd(10) mynewarr(1).abcd(1) = "123" mynewarr(1).abcd(10) = "456" mynewarr(1).lenth = 10 mynewarr(2) = mynewarr(1) mynewarr(3) = mynewarr(1) Text1.Text = mynewarr(2).abcd(1) & mynewarr(3).abcd(10) End Sub 2k+vb6环境下调试通过。text1的内容为123456
這是數組的數組,當然是可以的 你可以定義一個 Dim MyArr AS Variant() 的一維數組,再定義一個一維的數組Tmp(), 每當你設置好一維以后就可以用 MyArr(X)=Tmp() 調用的時候可以用 MyArr(X)(Y)來賦值和取值
顶楼上的,不过Dim MyArr As Variant()看上去很古怪噢 Dim MyArr() As Variant 'Variant动态数组 Dim Arr1(2) As Integer Dim Arr2(3) As Integer Arr1(0) = 3 Redim MyArr(1) MyArr(0) = Arr1 MyArr(1) = Arr2 Debug.Print MyArr(0)(0)
定义一个数据类型,里面包含一个动态数组,然后申明一个数组的类型是这个新的类型。
不过能不能直接a=b就不知道了特别是当被赋值的a的动态数组的长度没有redim的时候
代码如下:
Type newarr
abcd() As String
lenth As Long
End TypePrivate Sub Form_Load()
Dim mynewarr() As newarr
ReDim mynewarr(3)ReDim mynewarr(1).abcd(10)
mynewarr(1).abcd(1) = "123"
mynewarr(1).abcd(10) = "456"
mynewarr(1).lenth = 10
mynewarr(2) = mynewarr(1)
mynewarr(3) = mynewarr(1)
Text1.Text = mynewarr(2).abcd(1) & mynewarr(3).abcd(10)
End Sub
2k+vb6环境下调试通过。text1的内容为123456
你可以定義一個 Dim MyArr AS Variant() 的一維數組,再定義一個一維的數組Tmp(),
每當你設置好一維以后就可以用 MyArr(X)=Tmp()
調用的時候可以用 MyArr(X)(Y)來賦值和取值
Dim MyArr() As Variant 'Variant动态数组
Dim Arr1(2) As Integer
Dim Arr2(3) As Integer
Arr1(0) = 3
Redim MyArr(1)
MyArr(0) = Arr1
MyArr(1) = Arr2
Debug.Print MyArr(0)(0)