标签:VBA
本文介绍一段在网上搜索到的VBA过程代码,用于在数组中创建数组。代码如下:
Option Base 1
Private Type T_small
MArray2() As String
End Type
Sub Array_In_Array()
Dim MArray(10) As T_small ' 设置主数组的大小
Dim x As Long
Dim xx As Long
'*******************************************************************
'第一块用于创建内部数组(MARRAY2)的大小
'循环以创建新的虚拟内部数组的大小 - Option Base 1使数组下标以1开始而不是0
'在本例中,我们将使内部数组的设置值为5,可以是任意值或动态值
'*******************************************************************
For x = 1 To 10
ReDim Preserve MArray(x).MArray2(5) '重定义内部数组大小
Next x
'*******************************************************************
'第二块放置值到内部数组
'注意 - 需要2个循环才能循环通过, 1个循环用于外侧数组,一个循环用于内部数组
'*******************************************************************
For x = 1 To 10
For xx = 1 To 5
MArray(x).MArray2(xx) = xx '在内部数组中存储值 - 这里只是存储数字
Next xx
Next x
'*******************************************************************
'第三块来读取内容, 在立即窗口中打印
'Ctrl+G用于打开立即窗口
'*******************************************************************
' 打印结果
For x = 1 To 10
Debug.Print "----- MArray: " & x & " -----"
Debug.Print "----- 元素: " & UBound(MArray(x).MArray2) & " -----"
For xx = 1 To UBound(MArray(x).MArray2)
Debug.Print xx & ": " & MArray(x).MArray2(xx)
Next xx
Next x
End Sub
打开立即窗口和本地窗口,然后在代码中插入一个断点来逐语句运行代码,并观察变量值,从而理解这段代码。