用mscomm控件从计算机串口接受数据,inputmode=comInputModeBinary,
部分程序如下
      Dim p As Variant
      Dim a(4) As Byte
    Select Case MSComm1.CommEvent
    Case comEvReceive
          p = MSComm1.Input          
          a(1) = p(0),程序运行到这里总说p(0)下标越界,用单步执行却没有问题,
                       何解?

解决方案 »

  1.   

    有可能数据还没到,你在出错的语句前加一条sleep试试。
      

  2.   

    For ct = 0 To 9
                p = MSComm1.Input
                a(1) = p(0)
                p = MSComm1.Input
                a(2) = p(0)
                rst = a(1) * 16 + a(2)
                i = i + rst
              Next ct
    当我去掉这个循环后,就不出错了,一旦加上,循环第一次后,第二次就说P(0)下标越界,是何原因?谢谢!
      

  3.   

    可能这里出错了,程序中我加入了一个循环,如下
              For ct = 0 To 9
                p = MSComm1.Input
                a(1) = p(0)
                p = MSComm1.Input
                a(2) = p(0)
                rst = a(1) * 16 + a(2)
                i = i + rst
              Next ct
    当我去掉这个循环后,就不出错了,一旦加上,循环第一次后,第二次就说P(0)下标越界,是何原因?谢谢!