每当我想增加数组的两个维度时,我经常使用的一个技巧是创建一个方法)将是创建一个数组……我知道这听起来有点疯狂,但如果你考虑处理数组的方式,这个概念是完全相同的,只是你必须修改变量有点不同
考虑以下代码
-
- Sub VarTest()
- Dim Var1() As Variant
- Dim VarA() As Variant
- Dim VarB() As Variant
- Dim X, Y As Integer
- ReDim Preserve VarB(3)
- For X = 0 To UBound(VarB)
- ReDim Preserve Var1(3)
- For Y = 0 To UBound(Var1)
- Var1(Y) = X & "," & Y
- Next Y
- VarB(X) = Var1
- Next X
- MsgBox GetMDimArray(VarB, 3, 2)
- VarB = SetMDimArray(VarB, 3, 2, "This Is A Test")
- MsgBox GetMDimArray(VarB, 3, 2)
- End Sub
- Function GetMDimArray(ByRef MyArray As Variant, X As Integer, Y As Integer) As Variant
- GetMDimArray = MyArray(X)(Y)
- End Function
- Function SetMDimArray(ByRef MArray As Variant, X As Integer, Y As Integer, NewValue As Variant) As Variant
- MArray(X)(Y) = NewValue
- SetMDimArray = MArray
- End Function
正如你所见,实际上有一个数组被放置在主数组中,因此你可以通过事后使用多个维度来轻松访问数组的深度,即MyArray(X)(Y)。可以想象,您应该能够添加第三维或第四维,使其成为MyArray(W)(X)(Y)(Z)
这张图片应该澄清这个想法。 |