在最后一次I+1后,程序发现I>6了,结束之行

解决方案 »

  1.   

    MSGBOX 出来的就是7吗
     For i = 1 To 5
       Debug.Print i
     Next
    MsgBox iMsgBox结果就是6了
      

  2.   

    每次NEXT,i都会加上step中的数,缺省为1。
    当最后一次循环i=6时,运行到NEXT,I=I+1,此时I=7,检查I<=6,当然循环条件不成立,退出循环。
    执行到MSGBOX时,I已经为7了。(正因为是7才退出循环)
      

  3.   

    呵呵,我不是高手!不过这不是bug呀!
    你这样在看!
    For i = 1 To 6
          Debug.Print i
          MsgBox i
    Next
    如何?
    ----------------------------
    for 
    ..... 
    next '这里只有执行完这个循环内的东西,才到下面的语句msgbox msgbox i '这里的i只接受上面循环后的最后的值 
    ------------------------------
      

  4.   

    主要就是因为那个Next影响的呀
      

  5.   

    好象就是这样的
    Next i   'i加1   (step 为 1 或 不写)
    MsgBox i
      

  6.   

    主要是 NEXT 控制 FOR 循环 STEP
    默认值为 1 
    NEXT 后 I=I+(STEP)
    当 I=6 后 经 NEXT ,I=7
    跳出循环后 I=7
    MSGBOX I=7
    OVER