vb数组越界问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:21:18
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.PortOpen = True

End Sub

Private Sub Timer1_Timer()
Dim a As Variant
Dim value(1000) As Byte
Dim i As Integer
i = 0
For i = 0 To 999
a = MSComm1.Input
value(i) = a
Text1.Text = value(i)
Next i

End Sub

一运行就显示下标越界, 请问是什么问题啊?
麻烦各位帮帮忙啊?先谢谢啦!

先不问你哪里出问题,
下面代码应该无意义

For i = 0 To 999
a = MSComm1.Input '连续这句没意义,电脑太快,而comm慢,以后就收到空白数据或半截数据了。
value(i) = a
Text1.Text = value(i) '电脑太快,设你以上代码都正确,最后只显示 value(999),何苦让电脑这么受累。

Next i

加一句
j=UBound(a)
看看j值是多少?应该大于999
并且value(i) = a应该改为
value(i) = a(i)

可能与a有关。a接收数据。要看数据的格式了。。一般的仪器都有协议的。。。