数组大小不清楚,要靠程序计算.
所以,定义的时候应该怎样定义?For i = 0 To 3
    ReDim Preserve arr(0 To 1, 0 To i)
    arr(i, 0) = i + 10
    arr(i, 1) = i + 100
Next这样不行呀?会下标越界.应该怎样做?谢谢~``

解决方案 »

  1.   

    For i = 0 To 3
        ReDim Preserve arr(0 To 1, 0 To i)
        arr(0, i) = i + 10
        arr(1, i) = i + 100
    Next
      

  2.   

    For i = 0 To 3
        ReDim Preserve arr(0 To 3, 0 To i)
        arr(i, 0) = i + 10
        arr(i, 1) = i + 100
    Next
      

  3.   

    好像不对啊~``
    X轴是固定的,Y轴的大小不固定.
    arr(x,y)
    难道重定义的数组,x轴和y轴有问题么?
      

  4.   

    好像不对啊~``
    X轴是固定的,Y轴的大小不固定.
    arr(x,y)
    难道重定义的数组,x轴和y轴有问题么?
    -----------------------------
    多维动态数组如果保留前边数据,只能重定义最后一维,如:
    dim arr(0 to 1,0 to i)
    i=i+10
    redim preserve arr(0 to 1,0 to i)如果不需要保留前边数据,下面代码应该不会出错:
    dim arr(0 to 1,0 to 10)
    redim arr(0 to 100,0 to 10)
      

  5.   

    另外,X轴是固定的,Y轴的大小不固定.arr(x,y)
    -----------------------------------你可以在调用数据时,第一维表示X轴,第二维表示Y轴或者UDT解决:Private Type POINTS
            x  As Long
            y  As Long
    End TypePrivate Sub Command1_Click()
    Dim p(10) As POINTS, i As Long
    For i = 1 To 10
    p(i).x = i * 100
    p(i).y = 1000 + 2 * (p(i).x) ^ 0.5
    Me.Line (p(i).x, p(i).y)-(p(i - 1).x, p(i - 1).y)
    Next
    End Sub
      

  6.   

    不过我看多维动态数组,Y轴好像不可以更改.只能增加X轴的维数.
    最大只能定义60个么?
    -----------------------------------------------------
    概念混淆.
    猜测你的意思是表达一个二维数组,增加的是X轴的元素个数上限,并非X轴的维数
      

  7.   

    嗯,谢谢northwolves(狼行天下) ,给了这么多解释.
    是呀,是想增加个数上限.
    嗯,我再试试吧.
    结贴
      

  8.   

    VB上已经明确指出!
    动态多维树组,只能改变每维的长度,而不能更改维数!
    也就是说在A(X,Y)中,Y值可以变,而X值不能变!
    其实我也在找改变维数的方法,暂时还没有找到,有谁知道,请指教!