标签归档:asp

asp多维数组redim报错:下标越界

搜索:百度知道结果:
Dim p() As Byte
ReDim Preserve p(3, 1)
ReDim Preserve p(4, 1)
使用 Preserve,只能调整数组最后一维的大小。
Dim p() As Byte
ReDim Preserve p(1, 3)
ReDim Preserve p(1, 4)

Dim p() As Byte
ReDim p(3, 3)
ReDim p(2, 4)
都是正确的。
只有上面2种定义是正确的,这是VB规定的。
解决方法可以定义成最后一维可变,其他维不变的形式:
ReDim Preserve p(1, 3)
ReDim Preserve p(1, 4)
如果实在定义不了的话,利用临时数组存储数据,然后不用Preserve,再把临时数组数据转回P数组:
Dim p() As Byte ,dim q() as byte
ReDim Preserve p(3, 1)
redim q(3,1)
…’p数组数据转至Q数组中
ReDim p(4, 1)
…’Q数组数据转至回P数组中。