用VBA以不同的方式移动给定范围的每一行

我有一个3列30行的桌子。 我正在尝试编写一个VBAmacros,将第一行右移一格,第二行二格右移,依此类推。

例如,这个

AAA BBB CCC 

应该看起来像这样:

  AAA BBB CCC 

我到目前为止所尝试的,只能移动整个选定的范围:

 Sub Macro() Set Table = Application.InputBox("Select table", Title:="Table", Type:=8) Table.Cut Table.Offset(0, 1) End Sub 

这应该是做你想做的事情:

 Sub Macro() Set Table = Application.InputBox("Select table", Title:="Table", Type:=8) Set Dest = Application.InputBox("Select destination", Title:="Destination", Type:=8) For i = 1 To Table.Rows.Count For j = 1 To Table.Columns.Count Table.Cells(i, j).Copy Dest.Cells(i + j - 1, i + 1) Next j Next i End Sub 

之前:

在这里输入图像说明

代码:

 Sub asdfg() Dim N As Long, i As Long N = Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To N Cells(i, 1).Cut (Cells(i, i + 1)) Next i End Sub 

之后:

在这里输入图像说明

编辑#1:

要移动整个行使用:

 Sub zxcvb() Dim N As Long, i As Long N = Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To N Range(Cells(i, 1), Cells(i, i)).Insert Shift:=xlToRight Next i End Sub 

之前:

在这里输入图像说明

之后:

在这里输入图像说明