Excel女士“Next for for”

时间:2013-07-12 10:13:50

标签: vba excel-vba excel-2007 excel

我没有提出这个问题很多次,我已经仔细阅读了所有这些问题,并且在我的代码中遇到过这个问题并且能够解决它。

If count > 1 Then
           For Each Match1 In Regex.Execute(text)
           myOtherSheet.Cells(j, 1).Value = WkSht.Cells(r, 2)
           If Macth1 = "" Then
           Exit For
           Else
           myOtherSheet.Cells(j, 2).Value = Match1
           j = j + 1
           Next Match1
           End If

代码在下一个Match1行上给出了错误,当我忘记关闭一个循环时,这通常发生在我身上但是这里的一切似乎都没问题,如果让程序运行不运行,则在INNNER中退出吗?

3 个答案:

答案 0 :(得分:2)

End If之前错过Next。注意!!!

正确格式化代码应该避免这种错误。

答案 1 :(得分:0)

在Next Match1

之前

End If丢失

您可以使用Smart Indenter添加,这将使代码更具可读性,并修复类似这样的语法问题。 Download Smart Indenter

If count > 1 Then
    For Each Match1 In Regex.Execute(text)
        myOtherSheet.Cells(j, 1).Value = WkSht.Cells(r, 2)
        If Macth1 = "" Then
            Exit For
        Else
            myOtherSheet.Cells(j, 2).Value = Match1
            j = j + 1
        End If
        Next Match1
    End If

答案 2 :(得分:0)

我添加@LS_dev回答说如果你总是使用缩进,那么你更有可能得到所有End IfNext

因为你的代码看起来像缩进:

If Count > 1 Then
    For Each Match1 In Regex.Execute(Text)
        myOtherSheet.Cells(j, 1).Value = WkSht.Cells(r, 2)
        If Macth1 = "" Then
            Exit For
        Else
            myOtherSheet.Cells(j, 2).Value = Match1
            j = j + 1
        ' Missing End If
    Next Match1
End If