VBAコンパイラがなぜGoTo Jump
のそれぞれJump:
のために私にとばわれているのか、正直に分かりません。Excel VBA:forループ内をジャンプ: "For without For" - 何が間違っていますか?
counter2 = 0
If (counter1 > 1) Then
For i = 0 To (MaxLastCell - 4)
If (IncompleteRows(i) = 1) Then
If ((counter2 > 1) And (counter2 < counter1)) Then
x = x + ", " + CLng(i)
counter2 = counter2 + 1
GoTo Jump
End If
If ((counter2 > 1) And (counter2 = counter1)) Then
x = x + " and " + CLng(i)
GoTo Outside
If (counter2 = 0) Then
x = CLng(i)
counter2 = 1
End If
End If
Jump:
Next i
コードを実行しようとするたびに、このコードスニペットが問題のようです。コンパイラは一番下にNext
とマークし、"Next without For"
があることを通知します。
しかし、この種のコーディングは行わないでください。私はちょうどそれを見たhere。しかし、奇妙なことには、コンパイラがB HにジャンプポイントNextIteration:
を左に移動させるように強制していないようだが、それは2番目のインデントレベルにあるので、for
-loopそうみたいです。 (?でもかまいというん。)
IF構造を以下のようなElseIFに変更してください。ジャンプのジャンプ行を削除してgoto Outsideを 'Exit For'で置き換えることができます。 –