1

我正在尝试运行此循环,其中循环中的索引同时更改。

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

任何人都可以提出任何想法来建立一个循环同时变化的指标吗?谢谢!!

4

2 回答 2

2

由于您希望它们并行运行,因此您实际上不想要两个循环。从另一个变量计算一个变量:

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-07T00:50:37.760 回答
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 或相反)。

于 2012-11-07T00:39:40.540 回答