2017-01-13 105 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」。我不確定是否還有其他問題,但那個人跳到我身上。