2016-04-07 7 views
-2

変更する必要のあるループ内に複数の変数を持つ関数のネスト解除に問題があります。私はいくつかの行に格納されているデータを持っていますが、厄介な量の列があります。私はデータを取ってお互いの上に積み重ねて、もっと操作できるようにしています。私は両方の変数を変更する方法が必要ですy & n同じnextにすると、無限ループに詰まり、クラッシュします。複数の次への解決

yさんは通常の手順で続行しますが、変更するにはnさんが必要です。そうでない場合は、データは上書きされており、それ自体は繰り返しています。

Sub pasteanswers() 
Dim LastCol As Integer 
Dim y As Integer 
Dim x As Integer 
Dim n As Integer 
Dim v As Integer 



With ActiveSheet 
     LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column - 7 
     r2s = (LastCol/2) 

End With 

For x = 6 To 28 
For n = 1 To r2s 
For y = 6 To 1721 

Cells(y, 8).Value = Cells(x, ((2 * n + 8))).Value 
Cells(y, 9).Value = Cells(x, ((2 * n) + 9)).Value 



Next y 
Next n 
Next x 


End Sub 
+1

たぶんループと増分を取り除く... 'N = N + 1 '次のy – Davesexcel

+0

前良い解決策のように聞こえる!もう少し詳しく説明したり、この情報をどこで見つけることができるかについての参考資料を提供できますか? –

+2

あなたの 'n'ループを削除した場合、ループの前に' n = 0'を、 'nexty'の前に' n = n + 1'を設定すると、 'n ' yループ。 – Davesexcel

答えて

0

nとyを等しくする必要がある場合は、nを除いてyを使用します。この例では、データなしとの結果を予想、それはあなたのためにそれをテストするのは難しい...

Sub pasteanswers() 
Dim LastCol As Integer 
Dim y As Integer 
Dim x As Integer 
Dim v As Integer 

With ActiveSheet 
     LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column - 7 
     r2s = (LastCol/2) 

End With 

For x = 6 To 28 
For y = 6 To r2s 

Cells(y, 8).Value = Cells(x, ((2 * y + 8))).Value 
Cells(y, 9).Value = Cells(x, ((2 * y) + 9)).Value 

Next y 
Next x 

End Sub 
+0

にする必要があるときに 'n'はリセットされません。私は出口があるかどうかを判断しようとしています –

0
For n = 1 To r2s 
    y = n + 5 
    If y > 1721 Then Exit For 

    Cells(y, 8).Value = Cells(x, ((2 * n + 8))).Value 
    Cells(y, 9).Value = Cells(x, ((2 * n) + 9)).Value 

Next n