2017-01-13 32 views
0

VBA非常新,试图编写一个循环内有循环的宏。我想整个代码运行30次Excel中的嵌套复制/粘贴循环VBA

For i = 1 To 30 

Worksheets("Salary Extract (SPs Only)").Range("B" & (1 + i)).Copy 
Worksheets("Pitcher Matchup Analysis").Paste 
Destination = Worksheets("Pitcher Matchup Analysis").Range("B9") 

For i = 1 To 9 

Worksheets("Pitcher Matchup Analysis").Range("B" & (38 + i)).Copy 
Worksheets("Batter Matchup Analysis").Paste 
Destination = Worksheets("Batter Matchup Analysis").Range("B1") 
Worksheets("Batter Matchup Analysis").Range("B88:AC88").Copy 
Worksheets("Pitcher Matchup Analysis").Range("C" & (38 + i) & "AD" & (38 + i)).PasteSpecial xlPasteValues 

Next i 

Worksheets("Pitcher Matchup Analysis").Range("A71:R71").Copy 
Worksheets("Pitcher Comparison").Range("A" & (1 + i) & "R" & (1 + i)).PasteSpecial xlPasteValues 

Next i 

End Sub 

在每一个循环,我想这个块循环9次

For i = 1 To 9 

Worksheets("Pitcher Matchup Analysis").Range("B" & (38 + i)).Copy 
Worksheets("Batter Matchup Analysis").Paste 
Destination = Worksheets("Batter Matchup Analysis").Range("B1") 
Worksheets("Batter Matchup Analysis").Range("B88:AC88").Copy 
Worksheets("Pitcher Matchup Analysis").Range("C" & (38 + i) & "AD" & (38 + i)).PasteSpecial xlPasteValues 

Next i 

我的猜测是,这是一个相当简单的修复,但我米不确定,不能看出其他问题。

+0

只需将第二个循环放置在第一个循环中,并将第二个循环的第i个名称重命名为其他。 –

回答

3

乍一看问题是你不能在两个循环中使用计数器“i”。将其中一个计数器更改为“j”,并将内部循环中的所有引用更改为“j”。我不确定是否还有其他问题,但那个人跳到我身上。