次のコードは、次のような奇妙な動作を示しています:012)。ステップを0に設定すると、セルからセルに移動するだけで、メッセージボックスは1になります〜8(i = 1〜8の場合、ステップ0)。 2.)ステップを1に設定すると、シーケンス1,3,5,7(i = 1〜8の場合はステップ1)が得られます。ステップ1は、メッセージボックスの返品に対して1、2、3、4、5、6、7、8を生成するはずです。Excelでの奇妙なfor-nextループスキップステップの動作
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 8 Step 1
MsgBox i
ActiveCell.Offset(1, 0).Range("A1").Select
i = i + 1
Next i
End Sub
これの数学コースの理にかなっているが、これは(指定されていないステップ増分)と同じ結果が得られますので、メカニックルーピング標準のExcelによるが、奇妙なようだ:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 8
MsgBox i
ActiveCell.Offset(1, 0).Range("A1").Select
i = i + 1
Next i
End Sub
ですポイントは1、3、5、7です。ポイントは、forステートメントに "Step 0"を追加することが単一のインクリメントを与えることを知っていることですが、これはStepインクリメントを一緒に離れるための回避策のように感じますか?私は2013年のエクセルプロプラスが破損しているかどうか疑問に思います。これが正常かどうかについて私に手がかりを与えてください。 TIA。
通常、ループ内のループカウンタの値を変更しないでください。ここでは 'i = i + 1'は必要ありません。ループがどのように動作するかではありません。 –
うわー、私は恥ずかしいです、これは私のコードのほとんどがどんなに厄介なものであるかを考慮して、私の部分では非常にアマチュアな動きでした。私は本当にあなたの助けに感謝します。最近私は最近コーヒーを飲み過ぎているかもしれない。親切にありがとう。しかし、ポスは、ハチの力が合っていると思われる場合には、立つかもしれません。クリス – StumpedObject