Loops 未编译,因为“下一步不为”
我有下面的代码,但它在最后一个For循环中抱怨说,我有一个没有For的下一个For循环,所以甚至不会编译,这样我就可以调试了 我猜我有一些方向上的问题,但如果它不编译的话,我甚至不能研究它Loops 未编译,因为“下一步不为”,loops,ms-access,vba,Loops,Ms Access,Vba,我有下面的代码,但它在最后一个For循环中抱怨说,我有一个没有For的下一个For循环,所以甚至不会编译,这样我就可以调试了 我猜我有一些方向上的问题,但如果它不编译的话,我甚至不能研究它 For Each ck In Screen.ActiveForm For Each oCol In OverlapCol If oCol = Right(ck.Name, Len(ck.Name) - 2) Then ck.Enabled = True
For Each ck In Screen.ActiveForm
For Each oCol In OverlapCol
If oCol = Right(ck.Name, Len(ck.Name) - 2) Then
ck.Enabled = True
Exit For
GoTo TrueCk
End If
Next oCol
For Each aCol In DistAutCol
If aCol = Right(ck.Name, Len(ck.Name) - 2) Then
ck.Enabled = True
GoTo TrueCk
Exit For
End If
Next aCol
For Each gCol In DistGenCol
If gCol = Right(ck.Name, Len(ck.Name) - 2) Then
ck.Enabled = True
Exit For
GoTo TrueCk
Next gCol
ck.Enabled = False
TrueCk:
Next ck
我不明白:For循环与其他循环有什么不同?为什么我会遇到这个问题?我建议在Ifs中使用缩进进行格式化,如下所示:
For Each ck In Screen.ActiveForm
For Each oCol In OverlapCol
If oCol = Right(ck.Name, Len(ck.Name) - 2) Then
ck.Enabled = True
Exit For
GoTo TrueCk
End If
Next oCol
For Each aCol In DistAutCol
If aCol = Right(ck.Name, Len(ck.Name) - 2) Then
ck.Enabled = True
GoTo TrueCk
Exit For
End If
Next aCol
For Each gCol In DistGenCol
If gCol = Right(ck.Name, Len(ck.Name) - 2) Then
ck.Enabled = True
Exit For
GoTo TrueCk
End If
Next gCol
ck.Enabled = False
TrueCk:
Next ck
在这种情况下,您可能会注意到,您忘记在last If中添加End If,不幸的是,编译器消息在这种情况下会产生误导。太好了!谢谢,为了清楚起见,我以后会添加缩进。