你搞错了吧,检查一下最后一个text1的index值!
在我这里运行通过了,还是用你的代码。

解决方案 »

  1.   

    没有发现,最好在这个地方查看一下WATCH WINDOW 或者DEBUG WINDOW
    例如 在DEBUG WINDOW 中执行
    ?me.Text1(2).TEXT
    如果提示错误说明Text1(2)确实不存在
      

  2.   

    你有代码应该没有什么问题的,不过最好写成以下方式:
    Private Sub Option1_Click(Index As Integer)
        Dim i As Long
        For i = 0 To 2
            If i = Index Then
              Text1(Index).Visible = True '此处有时会出现控件数组2不存在
            Else
              Text1(i).Visible = False
            End If
        Next i
        If Text1(Index).Visible Then
          If Text1(Index).Enabled Then
              Text1(Index).SetFocus
          End If
        End If
    End Sub
    在程序中加入ME显的有些多余。
      

  3.   

    是你的下标错了,检查INDEX,看看到底对不对!!!
      

  4.   

    For i = 0 To me.Text1.UBound-1
      

  5.   

    这样改就好了:
    Private Sub Option1_Click(Index As Integer)
        Dim i As Long
        For i = 0 To me.Text1.UBound-1
           me.Text1(i).Visible = False
        Next i
        me.Text1(Index).Visible = True
        me.Text1(Index).SetFocus
     End Sub
      

  6.   

    如果对内存要求不大的话,为什么不使用一个窗体变量?省好多事!
    dim SelectNo as integer
    Private Sub Option1_Click(Index As Integer)
      if Index<>SelectNo then
        me.Text1(SelectNo).Visible = false
        Selectno=index
        me.Text1(SelectNo).Visible = True
        me.Text1(SelectNo).SetFocus
      Endif
    End Sub