我正在尝试运行这个循环,其中循环中的索引在同一时间更改。
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我正在尝试让循环做到这一点。
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)不幸的是,我的循环是这样做的:
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)我想我可以有一个这样的循环:但这并不能完全做到这一点。
For i = 0 To 20 Step 5
Range(ActiveCell, ActiveCell.Offset(5 + i, 0)).Copy Destination:=Cells(8, 12 + j-4)
Next j有没有人能给出一个同时改变索引的循环的想法呢?谢谢你!!
发布于 2012-11-07 08:50:38
因为你想让它们并行运行,所以你实际上不想要两个循环。从一个变量计算另一个变量:
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发布于 2012-11-07 08:39:41
for j = 0 to 5
Range(ActiveCell, ActiveCell.Offset(5 + i, 0)).Copy _
Destination:=Cells(8, 12 + j)
i = i + 5
next jEdit:让我的答案更完整一点:嵌套的for循环不会“并发工作”。最里面的for循环执行每个迭代,结束,然后下一个循环可以完成它的循环,依此类推。你所做的事情的诀窍是只有一个循环来控制这两个变量。你可以选择你想放在你的外观中的任何一个(或者i和手动递增j或者相反)。
https://stackoverflow.com/questions/13261621
复制相似问题