dim butter() as byte
butter=comm1.input       ’从串口接收,送到butter里
debug.print butter(1)  ‘提示下标越界,为什么?好急啊
 

解决方案 »

  1.   

    用UBound(butter),看下标是多少
      

  2.   

    butter没有初始化么,要分配内存~~~~~~~
      

  3.   

    楼上的回复这么快,我好感激!~我用了Ubound(butter),返回的是-1,怎么回事
      

  4.   

    我如果先给butter分配内存,那么
    butter=comm1.input  这里就会出现错误,说不能给数组赋值
      

  5.   

    再完整一点是这样的
    dim butter() as byte
    dim temp(33) as byte  '我的程序来说,足够大了
    dim lenth as integer
    butter=comm1.input 
    lenth=comm1.inButtercount  'inbutter 的长度
    for i=0 to lenth
          temp(i)=butter(i)   '给temp
    next i
    debug.print butter(1)
      

  6.   

    butter没有初始化啊,初始化temp有什么用?
      

  7.   

    butter不用先分配内存,butter=comm1.input这句会分配的
    debug.print butter(1)出错的原因是因为没有input数据!
    改为:
    if lenth>1 then debug.print butter(1)
    就可防错了
    butter下标一般是从0开始的,所以至少要有2字节数据butter(1)才会有效
      

  8.   

    非常抱歉没有看清楚,嘿嘿我想是因为 comm1.Input根本就没有返回内容的原因吧
      

  9.   

    论坛需要讨论的气氛,tiaoci(我挑刺,我快乐)喜欢挑刺,有个性,我并不反对。对大家都有好处。不过,挑刺若能注意对事不对人,就更完美了!
      

  10.   

    你还是查查comm1为什么没有返回数据吧?或者你的comm1口根本不能用?to viena,只是开玩笑,何必当真,嘿嘿
      

  11.   

    正确的COM控件应当这么用if comm1.InBufferCount > 0 then
        dim s() as byte
        s = comm1.Input
        debug.print s(0)
    end if
      

  12.   

    "你还是查查comm1为什么没有返回数据吧?或者你的comm1口根本不能用?"有返回数据
    debug.print com1.inbutterCount  '输出21dim butter() as byte
    dim temp(33) as byte  '我的程序来说,足够大了
    dim lenth as integer
    butter=comm1.input 
    lenth=comm1.inButtercount  'inbutter 的长度  //这里lenth=21我单步调试的,可是看得到’//这里,我加上if了for i=0 to lenth
          temp(i)=butter(i)   '给temp   //可是到了这里还是出错
    next i
    debug.print butter(1
      

  13.   

    回复人: tiaoci(我挑刺,我快乐) ( ) 信誉:100  2005-02-28 17:52:00  得分: 0  
     
     
       非常抱歉没有看清楚,嘿嘿我想是因为 comm1.Input根本就没有返回内容的原因吧  
     
    有,我调试时,看得的到
      

  14.   

    InButterCount ??不是 InBufferCount?难道你使用的不是MS 提供的MSComm控件?
      

  15.   

    呵呵
    不好是意思,我打错了
    是inbuffercount,是MSComm空件
      

  16.   

    for i=0 to lenth
          temp(i)=butter(i)   '给temp   //可是到了这里还是出错
    next i
    是不是应当是 length -1for i=0 to lenth -  1
          temp(i)=butter(i)   '给temp   //可是到了这里还是出错
    next i
      

  17.   

    因为有效数据只有 length 个,而且是从下标0开始的