退出嵌套的'If'语句

时间:2015-09-11 19:47:17

标签: excel excel-vba vba

我希望下面的代码评估数据集中的每一行,将第35列与范围匹配,然后粘贴到正确的选项卡中。

我在使用If Not IsError语句时遇到问题。在未发生匹配的情况下,我希望If Not Then跳过剩余的嵌套代码并跳转到For循环的末尾,移至下一行iRow

Sub testFind()    
    Dim csCount As Range
    Dim b As Variant
    Dim shrow As Long
    Dim iRow As Long, iRowL As Long, var As Variant
    Dim bln As Boolean
    Dim s As String
    Dim eRow As Integer

    Set csCount = Worksheets("Input").Range("csCount")   
    iRowL = Cells(rows.count, 1).End(xlUp).Row

    For iRow = 2 To iRowL  
        If Not IsEmpty(Cells(iRow, 35)) Then
            bln = False
            var = Application.Match(Cells(iRow, 35).Value, Worksheets("Input").Columns(3), 0)
            If Not IsError(var) Then
                Sheets("GL008").rows(iRow).copy
                s = Sheets("GL008").Cells(iRow, 35)
                Sheets(s).Activate
                eRow = Sheets(s).Cells(rows.count, 1).End(xlUp).Offset(1, 0).Row
                ActiveSheet.Paste Destination:=Sheets(s).rows(eRow)
            End If
        End If   
    Next iRow   
End Sub

1 个答案:

答案 0 :(得分:1)

使用CvErr

而不是

If Not IsError(Var) Then
    '
    '~~> Rest of the code
    '
End If

使用此

If Not CVErr(Var) = CVErr(xlErrNA) Then
    '
    '~~> Rest of the code
    '
End If