我仍在学习过程中,所以我需要一点帮助。
我有这个代码
worksheets("List").Activate
Range("B2").Activate
For i = 0 To 500
ActiveCell.Offset(i, 0).Select
Selection.Copy
For j = 0 To 8000
Worksheets("Code").Activate
Range("C2").Activate
ActiveCell.Offset(j, 0).Range("A1").Select
ActiveSheet.Paste
j = j + 13
Next j
Next i
End Sub
所以基本上我想要做的是将列表工作表中的一个单元格复制到代码工作表上的另一个单元格上。但我希望它每次将单元格复制到代码工作表时跳过 13 个单元格。我认为嵌套它的方式存在问题,所以我希望它从 List 工作表中复制 i,将其粘贴到代码工作表上的 j 上,然后返回,从 List 工作表中复制下一个 i,然后将其粘贴到代码表上的第 (j + 13) 个单元格并循环,直到复制所有 i 值。有人可以帮我纠正循环嵌套吗,我真的很感激! :)
我认为我每次都将相同的 i 值复制到 j + 13 上,这不是我想要的。
答案 0 :(得分:1)
解释您拥有的代码有点困难,但这样的事情可能很接近:
Sub Tester()
Dim wsList As Worksheet, wsCode As Worksheet, i As Long
Set wsList = Worksheets("List")
Set wsCode = Worksheets("Code")
For i = 1 To 500
'copy/paste
wsList.Range("B2").Offset(i - 1).Copy _
wsCode.Range("C2").Offset((i - 1) * 13)
'or copy value only (faster)
wsCode.Range("C2").Offset((i - 1) * 13).Value = _
wsList.Range("B2").Offset(i - 1).Value
Next i
End Sub
无需激活/选择