vb二维数组 输出

来源:百度知道 编辑:UC知道 时间:2024/07/04 07:45:34
Private Sub Command1_Click()
Dim aa() As Variant
aa() = Array(Array(8.03, 6.04, 4.06, 2.09, 1), Array(2.59, 2.03, 1.48, 1.07, 1), Array(1.88, 1.53, 1.21, 1.03, 1), Array(1.39, 1.22, 1.08, 1.01, 1), Array(1.19, 1.1, 1.03, 1.01, 1), Array(1.07, 1.04, 1.01, 1, 1), Array(1, 1, 1, 1, 1))
For i = 0 To 6
For j = 0 To 4
Print aa(i, j), '这个地方出现了下标越界,为什么?
Next j
Print
Next i
End Sub

用dim aa()定义的数组不能调用aa(n)这样的形式,解决方法是redim一下
给你段MSDN的解释:
声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:
Dim MyArray() As Integer
MyArray(8) = 234 ' 导致错误 9。

Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。

Dim aa() As Variant
aa() = Array(Array(8.03, 6.04, 4.06, 2.09, 1), Array(2.59, 2.03, 1.48, 1.07, 1), Array(1.88, 1.53, 1.21, 1.03, 1), Array(1.39, 1.22, 1.08, 1.01, 1), Array(1.19, 1.1, 1.03, 1.01, 1), Array(1.07, 1.04, 1.01, 1, 1), Array(1, 1, 1, 1, 1))
For i = LBound(aa) To UBound(aa)
For j = LBound(aa(i)) To UBound(aa(i))
Print aa(i)(j), '这个地方出现了下标越界,为什么?
Next j
Print
Next i
这个不会错

好像这个和你的定义方式有点关系.

想一下aa()是几维数组