当前位置:编程学习 > VB >>

VB 二维数组定义的问题!

如:一组数为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
Print
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 preserve

VB中的数组是按列优先存储的,如果你想让行动态变化,而又要保证原有数据不丢失的话,直接用ReDim操作是不行的,需要用一个临时数组存储原有数组中的数据才行。

VB中使用ReDIm Preserve重定义动态数组时,只能改变最后一维下标的上界。

上一个:vb获取启动文件夹路径
下一个:vb编程的代码和函数

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,