他のスタック交換の問題のロジックを同様の問題で使用しましたが、わかりません。 (良い例はここで見て:VBa conditional delete loop not working)私はそれが本当に簡単だと確信しています。なぜ私のコードはここで無限ループに陥っていますか?VBA excel delete endless loop
値を置き換えてから行の範囲を削除するだけです。どのようなアイデアが間違っている?おそらくダブルループの問題?私はそれをあまりにも長く見てきました、そして、それはすべて私にとって論理的です。どんな助けでも大歓迎です。
i = 4
Do While i < 10
j = 0
Do While j < 24
ho = Cells(i, 69 + j)
If 0 < ho < 3 Then
k = Cells(i, 67 + j)
Cells(i - 1, 67 + j) = k
Range(Cells(i, 66 + j), Cells(i, 69 + j)).Delete (xlShiftUp)
Else
j = j + 4
End If
Loop
i = i + 1
Loop
ループカウンタを増分する文をif文の中に入れないでください。あなたのコードが常にステートメントのelse部分を実行している場合を除き、 'j'は静的な値でスタックされ、24に達することはありません。 – eirikdaude
より明確にするために' DoEvents'と 'Debug.Print j'をステートメント'End If'と' Loop'です。イミディエイトウィンドウで 'j'の値を確認してください。 –
これは良い考えですが、変更していないことを確認するために行をチェックし続けたいからです(削除されているので)。何も削除されない場合は、インクリメントするだけです。右?多分私はここで間違っていますか? – Tee