Public Sub()
For intI = 1 To 10
   For intJ = 1 To 10
       '如果在这里退到外面的循环
       Goto F
   Next
Next
F:
...End Sub答案1:使用Goto语句

解决方案 »

  1.   

    定义一个变量就可以了
    Public Sub() 
    dim blnS as boolean
    For intI = 1 To 10 
      For intJ = 1 To 10 
          '如果在这里退到外面的循环 
           if …… then'你跳出循环肯定有什么条件吧.
             blnS=true
             exit for
          endif
      Next 
      if blnS=true then exit for
    Next 
    F: 
    ... End Sub 
      

  2.   

    if .... then
        exit for
    end if
      

  3.   

    Public Sub()
    For intI = 1 To 10
      For intJ = 1 To 10
          exit for'这两句可选其一,效果一样
          'Goto F '这两句可选其一,效果一样
      Next
    F:'改到这里
    Next
    ...End Sub
      

  4.   

    Exit For是首选
    当然:GoTo 语句也可以。例一:
    Private Sub Command1_Click()
        Dim intP As Integer
        Dim intT As Integer
        For intP = 0 To 1000
            For intT = 0 To 1000
                If intT >= 500 Then Exit For
            Next intT
        Next intP
        Debug.Print intP
        Debug.Print intT
    End Sub例二:
    Private Sub Command1_Click()
        Dim intP As Integer
        Dim intT As Integer
        For intP = 0 To 1000
            For intT = 0 To 1000
                If intT >= 500 Then GoTo LabX
            Next intT
    LabX:
        Next intP
        Debug.Print intP
        Debug.Print intT
    End Sub
      

  5.   

    如果最外层循环的外面就是过程或函数结束,也可以使用Exit Sub或Exit Function
      

  6.   

          Private Sub Command1_Click()
        Dim intP As Integer
        Dim intT As Integer
        For intP = 0 To 1000
            For intT = 0 To 1000
                If intT >= 500 Then GoTo LabX
            Next intT
        Next intP
    LabX:
        Debug.Print intP
        Debug.Print intT
    End Sub
      

  7.   

    第一种办法:我们叫“绿色通道法”——最文明的办法,绅士和淑女最喜欢用的办法。
    Private Sub Command2_Click()
      For I = 1 To 10
        For J = 1 To 10
          If I >= 2 And J >= 3 Then E = True
          If E Then Exit For
          Debug.Print I, J
        Next
        If E Then Exit For
      Next
    End Sub
    第二种办法:我们叫“统一循环法”——最难懂的办法,外星人喜欢用(比如KiteGirl)。
    Private Sub Command3_Click()
      For M = 0 To 99
        I = M \ 10 + 1
        J = M Mod 10 + 1
        If I >= 2 And J >= 3 Then Exit For
        Debug.Print I, J
      Next
    End Sub
    第三种方法:我们叫“变量诈骗法”——讲究“回”字有几种写法的孔乙己之流最喜欢用。
    Private Sub Command4_Click()
      For I = 1 To 10
        For J = 1 To 10
          If I >= 2 And J >= 3 Then
            J = 11
            I = 11
          End If
          Debug.Print I, J
        Next
      Next
    End Sub
    上述三种方法虽然可以实现同一个功能,但是在细节上有差别,有各自的特色。不能简单套用,需要特别注意。