2012-11-07 2 views
1

루프의 인덱스가 동시에 변경되는이 루프를 실행하려고합니다. 내가 단일 루프 등이있을 수 있습니다 생각VBA의 이중 루프

Range(ActiveCell, ActiveCell.Offset(5 + 0, 0)).Copy Destination:=Cells(8, 12 + 0) 
Range(ActiveCell, ActiveCell.Offset(5 + 5, 0)).Copy Destination:=Cells(8, 12 + 0) 
Range(ActiveCell, ActiveCell.Offset(5 + 10, 0)).Copy Destination:=Cells(8, 12 + 0) 
... 
Range(ActiveCell, ActiveCell.Offset(5 + 0, 0)).Copy Destination:=Cells(8, 12 + 1) 
Range(ActiveCell, ActiveCell.Offset(5 + 5, 0)).Copy Destination:=Cells(8, 12 + 1) 

:이

Range(ActiveCell, ActiveCell.Offset(5 + 0, 0)).Copy Destination:=Cells(8, 12 + 0) 
Range(ActiveCell, ActiveCell.Offset(5 + 5, 0)).Copy Destination:=Cells(8, 12 + 1) 
Range(ActiveCell, ActiveCell.Offset(5 + 10, 0)).Copy Destination:=Cells(8, 12 + 2) 
Range(ActiveCell, ActiveCell.Offset(5 + 15, 0)).Copy Destination:=Cells(8, 12 + 3) 
Range(ActiveCell, ActiveCell.Offset(5 + 20, 0)).Copy Destination:=Cells(8, 12 + 4) 

에게 내가 unfortuantly이 루프를 수행하는 루프를 얻기 위해 노력하고

For i = 0 To 20 Step 5 
For j = 0 To 5 Step 1 

Range(ActiveCell, ActiveCell.Offset(5 + i, 0)).Copy Destination:=Cells(8, 12 + j) 

Next i 
Next j 

이 수행합니다 하지만 그렇게하지는 않습니다.

For i = 0 To 20 Step 5 

Range(ActiveCell, ActiveCell.Offset(5 + i, 0)).Copy Destination:=Cells(8, 12 + j-4) 

Next j 

누구든지 지표가 동시에 동시에 변경되는 루프가있는 아이디어를 제안 할 수 있습니까? 고맙습니다!!

+0

내가 문제라고 생각합니다 "다음 내가 다음의 j는"나는 당신이, "다음 J 다음으로"해야한다 엉망 그것을 생각? – Larry

답변

1

병렬로 실행하려면 실제로 두 개의 루프가 필요하지 않습니다. 다른에서 하나 개의 변수를 계산한다

For j = 0 To 4 Step 1 
    i = j * 5 

    Range(ActiveCell, ActiveCell.Offset(5 + i, 0)).Copy Destination:=Cells(8, 12 + j) 

Next i 
+0

루프가 OP와 다릅니다. – ApplePie

+0

@ AlexandreP.Levasseur : 만약'j'가'0'에서'4'까지 올라간다는 것을 의미한다면 그것은 의도적입니다. 그렇지 않으면 원하는 결과를 얻을 수 없습니다. 원래 코드에서 외부 루프는 다섯 번의 반복을 수행하고 내부 루프는 여섯 번의 반복을 수행하지만 결과에서 다섯 번의 반복을 수행해야하며 동시에 병렬로 실행해야하므로 동일한 반복 횟수를 실행해야합니다. – Guffa

2
for j = 0 to 5 
    Range(ActiveCell, ActiveCell.Offset(5 + i, 0)).Copy _ 
     Destination:=Cells(8, 12 + j) 
    i = i + 5 
next j 

편집 : 내 대답을 좀 더 완성되게하려면 : for 루프는 "동시에 작동하지"않습니다. 가장 안쪽의 for 루프는 모든 반복을 수행하고 종료되며 다음 루프는 해당주기를 완료 할 수 있습니다. 당신이하고있는 일에 대한 속임수는 두 변수를 모두 제어하는 ​​유일한 루프입니다. 당신은 내 모습에 넣고 싶은 것을 선택할 수 있습니다. (i와 수동으로 j를 늘리거나 다른 방법으로).