用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
之前:
之后: