【发布时间】:2021-07-21 15:12:45
【问题描述】:
我仍在学习过程中,所以我需要一些帮助。
我有这个代码
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 ,将其粘贴到 Code 工作表上的 j 上,然后返回,从 List 工作表中复制下一个 i ,然后将其粘贴到代码表上的第 (j + 13) 个单元格并循环,直到所有 i 值都被复制。有人可以帮我纠正循环嵌套吗,我真的很感激! :)
我认为我每次都将相同的 i 值复制到 j + 13 上,这不是我想要的。
【问题讨论】:
-
如果你还在学习过程中,你可能会受益于阅读How to avoid using Select in Excel VBA
-
For j = 0 To 8000 Step 13会比在循环内更改j好得多 - 这是使用For...Next循环时的禁忌。