VB 二维数组定义的问题!
如:一组数为3列 行数不确定!!行数是动态增加的!如何定义?
追问:啊··我没用过集合吖!!我运行你现在这个好像有错误··能举个简单的例子吗??比如给第3行第2列赋值!
如:一组数为3列 行数不确定!!行数是动态增加的!如何定义?
追问:啊··我没用过集合吖!!我运行你现在这个好像有错误··能举个简单的例子吗??比如给第3行第2列赋值!
答案:数组原来的值需不需要保存呢?如果不需要那直接用ReDim就可以了。如果需要那可以用ReDim Preserve,但只能改变最后一维的上界,所以要把第一维当成列数,第二维当成行数。
Private a() As Integer
Private Sub Form_Click()
Dim i As Integer
Dim j As Integer
ReDim a(1 To 3, 1 To 5)
For i = 1 To 5
For j = 1 To 3
a(j, i) = j * i
Next
Next
ReDim Preserve a(1 To 3, 1 To 8)
For i = 6 To 8
For j = 1 To 3
a(j, i) = j * i
Next
Next
For i = 1 To 8
For j = 1 To 3
Print a(j, i);
Next
Next
End Sub与众不同的处理,给你参考
Dim a() As Variant
Dim val() As String '做为值的一维数组
ReDim Preserve a(1) As Variant '二维为1
ReDim Preserve val(2) As String '一维为2
a(0) = val '设置二维值为一维
a(0)(0) = "fdf" '设置值
'重设二维为2
ReDim Preserve a(2) As Variant
a(1) = val '设置新增加的纬度值为一维
a(1)(0) = "fdfdf"
Text1.Text = a(0)(0)
Text2.Text = a(1)(0)dim redim preserveVB中的数组是按列优先存储的,如果你想让行动态变化,而又要保证原有数据不丢失的话,直接用ReDim操作是不行的,需要用一个临时数组存储原有数组中的数据才行。
VB中使用ReDIm Preserve重定义动态数组时,只能改变最后一维下标的上界。
上一个:vb获取启动文件夹路径
下一个:vb编程的代码和函数