芭提雅1月天气:我用VB编东西,可是运行的时候老出“下标越界”?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/08 12:13:32
我用VB编东西,可是运行的时候老出“下标越界”?请问是怎么回事?
Dim i%, Buf$, s1$, s2$, s3$, s4$, s5$, s6$, s7$, s8$, s9$, s10$, n1$, n2$, n3$, n4$, n5$, n6$
RThreshold = 1
InByte = MSComm1.Input

Buf = CLng(InByte(0)) * 65536 + CLng(InByte(1)) + CLng(InByte(2))
s1 = (InByte(4))
s2 = (InByte(3))
s3 = (InByte(5))
s4 = (CLng(InByte(6)) * 256 + CLng(InByte(7))) / 1000
s5 = (CLng(InByte(8)) * 256 + CLng(InByte(9))) / 1000
s6 = (CLng(InByte(10)) * 256 + CLng(InByte(11))) / 1000
s7 = (CLng(InByte(12)) * 256 + CLng(InByte(13))) / 1000
s8 = InByte(14) + InByte(15)

DIM InByte(X)
X为下标。

就是定义数组下标啊

比如Dim InByte(100) As interger
那么,你只能出现InByte(0)到~InByte(100)的变量,超过100的就下标越界了

你的程序中没有声明数组变量啊
应该先声明

你“InByte = MSComm1.Input
Buf = CLng(InByte(0)) * 65536 + CLng(InByte(1)) + CLng(InByte(2))”
一开始的那个InByte是变量,而下面的 InByte(0)就是数组了,不为同一个。所以你这里似乎有一点混乱。

你这里最大下标是15吧,在程序中就声明:Dim Inbyte(15) As Long,只要你的下标即括号里的数不超过15就可以了。
那么,分别是以下这16个Long型:
Inbyte(0)
Inbyte(1)
Inbyte(2)
.
.
.
Inbyte(15)

你的范围定得不对