Dim buf_redata() As Byte
Dim j%
Dim inbyte() As Byte
       .
       .
       .
    j=20
       .
       .
       .
Select Case MSComm1.CommEvent   
    Case comEvReceive   ' 收到 RThreshold # of Data
        inbyte = MSComm1.Input
             For i = LBound(inbyte) To UBound(inbyte)
                  buf_redata(j) = inbyte(i)                               ,赋值
                  j = j + 1
                  Text_re.Text = Text_re.Text + Hex(inbyte(i)) + Chr(32)  '显示
            Next i
       .
       .
       .
  End Select
       
利用串口接收数据,当有数据进入时
    错误:
         实时错误‘9’
            下标越界      buf_redata(j) = inbyte(i)   有问题吗?
怎么解决?
谢谢各位大侠!!!

解决方案 »

  1.   

    Select Case MSComm1.CommEvent   
        Case comEvReceive   ' 收到 RThreshold # of Data
            inbyte = MSComm1.Input
    ,初始化
    ReDim Preserve redata(UBound(inbyte))
                 For i = LBound(inbyte) To UBound(inbyte)
                      buf_redata(j) = inbyte(i)                               ,赋值
                      j = j + 1
                      Text_re.Text = Text_re.Text + Hex(inbyte(i)) + Chr(32)  '显示
                Next i
           .
           .
           .
      End Select
      

  2.   

    buf_redata没有初始化:
    在inbyte = MSComm1.Input后增加:
    ReDim Preserve buf_redata(UBound(inbyte))
      

  3.   

    不需要初始化,只需如下即可赋值:
    buf_redata = inbyte