新手~~
Dim v As Variant
Dim rd() As Byte
......redim s()
v = MSComm1.Input
rd = v
s(1) = rd(0)  //rd(0)下标越界
.....谢谢!!!!

解决方案 »

  1.   

    rd动态数组,你根本就没有设下标,当然越界。
    dim rd(5) as byte
    或 dim rd() as byte: redirm rd(5)
    其中的5即下标,默认情况下标基数是0
      

  2.   

    redim s(0) 或者
    redim s(ubound(rd))
      

  3.   

    If MSComm1.InBufferCount > 0 Then
        v = MSComm1.Input 
    rd = v 
    s(1) = rd(0) 
    endif
      

  4.   

    如果这样dim rd(5)as byte设置了下标,那variant类型的v就不能给rd赋值了.即:rd = v
      

  5.   

    Dim v As Variant 
    Dim rd() As Byte 
    ...... 
    v = MSComm1.Input 
    rd = v 
    redim s(1 To Ubound(rd) + 1) 
    s(1) = rd(0)