2017-10-24 10 views
0

開始と終了番号を変数にして動的forループを作成しようとしました。しかし、コードは変更された開始番号と終了番号でforループに入ることはできません。どうすれば問題を解決できますか?ここでVBAで動的forループを作成する

(Last + 1)値にStart値からxループFor x = Start To (Last + 1)私のコード

Sub row_column() 

Dim ws As Worksheet 

Set ws = ThisWorkbook.Worksheets("origin_boundary") 

Row = 1 

Dim Start As Integer 
Start = 2 
Dim Last As Integer 
Last = 41 

For x = Start To (Last + 1) 

If ws.Cells(x, 1) <= Row * 40 Then 
ws.Cells(x, 6) = Row 

Else 
If ws.Cells(x, 1) > (Row * 40) Then 

Row = Row + 1 
ws.Cells(x, 6) = Row 
Start = (Row - 1) * 40 + 2 
Last = Start + 39 

End If 

End If 

Next x 






End Sub 
+0

期待される成果とは何ですか?コードはそのままForループに入ります。 – QHarr

答えて

0

です。

  • 初回ループ実行、Start = 2ためx = 2Start
    値を変更しない点がないので、

  • 二度目のループを実行すると、x = 3 3は2 Start
    後に来るので、ここで役割を持っていません。代わりにxの値をx = (Row - 1) * 40 + 2のように変更することができます。あなたがしたい場合

  • Last = Start + 39

    は、動的することができますが、 xは(動的に変更)の値Last値に達するまで、それは問題ではありません。ここでStartの代わりにxを使用できます。