阳泉志愿者 发表于 2006-11-17 11:53:14

晚了一天,少了一分钱&nbsp 

沙漠泉眼 发表于 2006-11-18 00:09:17

每当我想增加数组的两个维度时,我经常使用的一个技巧是创建一个方法)将是创建一个数组……我知道这听起来有点疯狂,但如果你考虑处理数组的方式,这个概念是完全相同的,只是你必须修改变量有点不同
考虑以下代码
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)
这张图片应该澄清这个想法。
页: 1 [2]
查看完整版本: ReDim阵列???