2016-05-13 5 views
1

3列30行のテーブルがあります。私は右に1セルを第1行シフトし、右に2行目を2行目のようにVBAマクロを書き込もうとしています。VBAで各行を異なる範囲で移動する

たとえば、この

AAA 
BBB 
CCC 

は次のようになります。前に

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

答えて

2

これは、あなたが欲しいものをやっている必要があります。

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 
1

:私がこれまで試した

AAA 
    BBB 
    CCC 

何、全体のみ選択した範囲を移動できます。

enter image description here

コード:

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 

と後:

enter image description here

EDIT#1:

行全体使用をシフトします

enter image description here

と後:

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 

enter image description here

+0

おかげで、しかし、それは動作しません。複数の列の場合 – Lanza

+0

@Lanza行全体をシフトしますか? –

+0

私は選択の最初の行を1つのセルで右にシフトしたい、2番目の行2cellsを右にシフトするなどします。 – Lanza

関連する問題