更改录制的macros以处理所有数据

我在excel中logging了这个macros。 这个想法是通过所有行(100)并重复SUB。 我想我想到了适当的algorithm(我有基本的Turbo Pascal知识)。

这是我的algorithm:

创build一个使用variablesi的循环进行计数。 对于我从2 (我们从第2行开始,第1行有标题) 到200 (即使我们最初有100行时,脚本将完成执行,我们将会增加一倍的行数)

做分

如何使行(“2:2”)例如引用i的当前值。

行(“3:3”)如何使用值i + 1。

如何使Range(“B2”)使用值B(i)

我坚持循环和正确的语法请帮助。 另外,因为我想深入探讨这个话题,请您提供一些好的资源? 在高中之后,我并不是真的对编码感兴趣,但是现在我想深入这个话题。

Sub Macro2() Rows("2:2").Select Selection.Copy Rows("3:3").Select Selection.Insert Shift:=xlDown Range("B2").Select Application.CutCopyMode = False Selection.Cut Range("A3").Select ActiveSheet.Paste End Sub 

像这样的东西:

 Sub Macro2() Dim i As Long For i = 100 To 2 Step -1 Rows(i).Copy Rows(i + 1).Insert shift:=xlDown Cells(i, 2).Cut Cells(i + 1, 1) Next i End Sub 

我删除了.Select.Activate它减慢了代码。 在这里看到很好的指导。

添加或减less行时,最好从下到上进行迭代。 Step - 1这样做。 它从第100行开始,直到第2行。

另一个注意事项是,您需要指定该工作表,以便查看正确的工作表:

 Sub Macro2() Dim ws as Worksheet Dim i As Long Set ws = Sheets("Sheet1") 'Change to your sheet. For i = 100 To 2 Step -1 ws.Rows(i).Copy ws.Rows(i + 1).Insert shift:=xlDown ws.Cells(i, 2).Cut ws.Cells(i + 1, 1) Next i End Sub