お世話になります。No.843313の続きになるのですが、思った通りに動いてくれませんでした。
やりたいことは、「Cells(97,4)まで数字が入ったら、次はCells(7,13)に移動して処理1を繰返したい」というものなのですが、Cells(97,4)まで入ったところで終了してしまい、次のCells(7,13)へ移動してくれません。エラーメッセージも出ていません。
どうしたらいいのでしょうか?宜しくお願いします。
(見やすいように字下げできませんでした。見難くてごめんなさい。)
iii = 4
With sheetIRO
’処理1
For ii = 7 To 97 Step 10
If .Cells(ii, iii).Value = "" Then
.Range(.Cells(ii, iii), .Cells(ii + 4, iii + 2)).Value _
= Sheets("Result").Range("G20:I24").Value
Exit For
End If
If ii = 97 Then
iii = iii + 9
ii = 7
Exit Sub
End If
Next ii
End With
ざっと見なのですが、
>If ii = 97 Then
> iii = iii + 9
> ii = 7
> Exit Sub
>End If
この個所のExit Subは不要かと。
変数iiiそのものは、ここで、13に変わりますが、
その後に、Exit Subでルーチンそのものを終了してしまってますので、
この個所がネックになっているかと。
同じ処理を等間隔にn回行うのであれば、
2重ループにした方がよいかと。
for j=1 to n
iii = 4 + ((j-1) * 9) '*1
for k=ii To 97 Step 10
(処理)
next ii
next j
*1
iii:4,13,21・・・(ループカウンタjとの組み合わせ)
今回だと2回同じ事を行うので、n=2になります。
多重ループは、多次元配列を扱ったり、ソート処理等、
汎用性がきくので使えるようにしておくと後々便利かと。