For j = 1 To i
If j = 1 Then FY = FY1
If j = 2 Then FY = FY2
If j = 3 Then FY = FY3
If j = 4 Then FY = FY4
If j = 5 Then FY = FY5
If j = 6 Then FY = FY6
If j = 7 Then FY = FY7
If j = 8 Then FY = FY8
If j = 9 Then FY = FY9
Sheets("Calcs").Select
Sheets("Calcs").Range("6:6").Find(FY).Select
With Worksheets(TabName).Range("C:C")
Set FYFindj = .Range.Find(FY, LookIn:=xlValues)
End With
If FYFindj Is Nothing Then
Next j
End If
在结束If语句之后,它会做一堆效果很好的东西。如果找不到特定的FY,我希望宏转到j的下一次迭代。
感谢您的帮助。
答案 0 :(得分:0)
使用GOTO
声明
For j = 1 To i
If j = 1 Then FY = FY1
If j = 2 Then FY = FY2
If j = 3 Then FY = FY3
If j = 4 Then FY = FY4
If j = 5 Then FY = FY5
If j = 6 Then FY = FY6
If j = 7 Then FY = FY7
If j = 8 Then FY = FY8
If j = 9 Then FY = FY9
Sheets("Calcs").Select
With Worksheets(TabName).Range("C:C")
Set FYFindj = .Range.Find(FY, LookIn:=xlValues)
End With
If FYFindj Is Nothing Then
GoTo Exit_Loop
End If
Exit_Loop:
Next j
OR,使用条件逻辑:
For j = 1 To i
If j = 1 Then FY = FY1
If j = 2 Then FY = FY2
If j = 3 Then FY = FY3
If j = 4 Then FY = FY4
If j = 5 Then FY = FY5
If j = 6 Then FY = FY6
If j = 7 Then FY = FY7
If j = 8 Then FY = FY8
If j = 9 Then FY = FY9
Sheets("Calcs").Select
With Worksheets(TabName).Range("C:C")
Set FYFindj = .Range.Find(FY, LookIn:=xlValues)
End With
If Not FYFindj Is Nothing Then
'### DO a bunch of stuff that works great HERE
Else:
'### DON'T DO ANYTHING
End If
Next j
答案 1 :(得分:0)
您可以使用条件If
来测试找到的范围,如果不存在则继续前进。我在您的问题中重构了代码,并清理了FY
的设置。
For j = 1 To i
Select Case j
Case 1 To 9: FY = "FY" & j
End Select
With Worksheets(TabName)
If Not .Range("C:C").Find(FY, LookIn:=xlValues) Is Nothing Then
Set FYFindj = .Range("C:C").Find(FY, LookIn:=xlValues)
'do stuff
End If
End With
Next
答案 2 :(得分:-1)
这是我之前评论的后续内容 对于j = 1到i
If j = 1 Then FY = FY1
If j = 2 Then FY = FY2
If j = 3 Then FY = FY3
If j = 4 Then FY = FY4
If j = 5 Then FY = FY5
If j = 6 Then FY = FY6
If j = 7 Then FY = FY7
If j = 8 Then FY = FY8
If j = 9 Then FY = FY9
Sheets("Calcs").Select
With Worksheets("Calcs").Range("6:6")
Set FYFindj = .Range.Find(FY, LookIn:=xlValues) 'This is where I get the Run-Time Error
End With
If Not FYFindj Is Nothing Then
Sheets("Calcs").Range("6:6").Find(FY).Select
addr = ActiveCell.Address