Private Sub Command1_Click()
    Text1.Text = ""
    Dim S As Long, i As Long
    Dim A()
    Do
        ReDim Preserve A(S)                      
        A(S) = InputBox("请输入字符", "输入")
        S = S + 1
    Loop Until A(S - 1) = ""
    For i = 0 To S - 2
        Text1.Text = Text1.Text & "第" & CStr(i + 1) & "个是" & CStr(A(i)) & " "
    Next i
    Erase A
End SubS的初始值是“0”吗?只输入一条数据,那么数组A(S)就是A(0),之后For i = 0 To S - 2的话For i = 0 To 1 - 2 是如何输出的?
求教!

解决方案 »

  1.   

    初始值是0吗?是。
    循环以空输入结束(比如输入5条数据,程序跑起来的效果是6个inputbox,输完5个,在第6个inputbox里直接回车),所以最终S=数据量+1,Ubound(A)=S,A(S-1)="",最后一条数据保存在A(S-2)
      

  2.   

    只输入一条数据,那S取值是0是吗?for这里执行几次呢?i=0 to 0-2
      

  3.   

    Ubound(A)=S-1,手误。
    如果只有1条数据,S=2,A(0)=数据,A(1)=""。
    循环范围是  For i = 0 To 2 - 2
      

  4.   

    程序跑起来,弹出一个inputbox,输入第一个数,这时候S=1,这是第一次循环;
    然后进入第二次循环又弹出一个inputbox(因为A(S - 1)不是“”,没触发退出循环的条件),在第二个inputbox里直接回车,什么也不输(A(S - 1)="" 的时候才会退出循环,这是结束标记),S=2。