完全动态的二位数组怎么定义?
Dim a() As String
ReDim a(5) As String
ReDim a(0, 3) As String
a(0, 0) = 0
a(0, 1) = 1
Debug.Print a(0, 1) & "before:" & UBound(a, 2)
ReDim a(1, 6) As String
a(1, 0) = 5
a(1, 1) = 6
Debug.Print a(0, 1) & "after:" & UBound(a, 2)
实际上想实现的效果是:a(0)本身又是1维的数组,上限是3,
a(1)本身又是1维的数组,上限是6,
可是这样做的结果是当“ReDim a(1, 6) As String”后,a(0)存的东西都丢了,怎么才能不丢呢?
问题点数:40、回复次数:4Top
1 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-02-24 12:49:55 得分 20
ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]] . . .
ReDim 语句的语法包括以下几个部分:
部分 描述
Preserve 可选的。关键字,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。
Top
2 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2005-02-24 12:55:40 得分 20
用VB的动态数组是不行的
去学《数据结构》
学习动态数据的存储算法
Top
3 楼hotheartlewis()回复于 2005-02-24 12:59:53 得分 0
preserve改变的是原有数组最末维的大小
ReDim Preserve a(0,3) As String
如果没有前面的Redim a(5) as String,是对的,但如果有前面的Redim a(5)的话,就会报错了。Top
4 楼hotheartlewis()回复于 2005-03-01 16:22:23 得分 0
nobody knows?Top




