vb下标越界问题,急!!!

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:40:42
Option Base 1

Private Sub Command1_Click()
ReDim yy(m, n) As Double
For i = 1 To m
For j = 1 To n
yy(i, j) = InputBox("输入系统特征变量数据")
Next j
Next i
End Sub

Private Sub Command2_Click()
ReDim xx(l, n) As Double
For i = 1 To l
For j = 1 To n
xx(i, j) = InputBox("输入相关因素数据")
Next j
Next i
End Sub

Private Sub Command3_Click()

For i = 1 To m
For j = 1 To n
Print yy(i, j); "";
Next j
Print
Next i
End Sub

Private Sub Command4_Click()

For i = 1 To l
For j = 1 To n
Print xx(i, j); "";
Next j
Print
Next i
End Sub

Private Sub Command5_Click()
Form3.Hide
Form1.Show
End Sub
前面我已经输入M,N,L的数值3,10,6,但是已运行到第一行就出现下标越界。
怎样才可以把FORM2上输入的M,N,L数值设置为全程序都可以使用。

ReDim yy(m, n) As Double

你的MN从哪儿输入的? 从代码中看, mn即不是全局变量,在过程中也没有赋值的,当你直接使用redim时, 2个变量都是0, 当然会下标越界

你错误时,可以返回调试,然后看一下mn的值呵,肯定是0的

ReDim yy(m, n) As Double
定义yy(x,y)
x只能是0-(m-1)
y只能是0-(n-1)
要想
x是1-m
y是1-n
要这样定义ReDim yy(1 to m, 1 to n) As Double