我希望下面的代码评估数据集中的每一行,将第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
答案 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