2017-08-17 7 views
0

私は新しいユーザーです。まだ画像を埋め込むことはできません...リンクをご覧ください。VBA - 各行の最後のエントリを切り取り、新しい列に貼り付けます。行の長さは変化します

私のデータは次のようになります:Before。そして、私はそれをこのようにしたいと思います:After

Dim lastRow As Long 
lastRow = Range("Sheet2!A" & Rows.Count).End(xlUp).Row 
Dim col As Integer 
col = Range("Sheet2!A1:A" & lastRow).End(xlToRight).Column 
Columns(col).Copy 
Columns(col + 1).Insert Shift:=xlToRight 

私はマクロが任意の行数、ひいてはLASTROWのものをデータセットで作業したいと思います:ここで私は(失敗した)しようとしてきたコードです。何か案は?

答えて

1

これはどのように機能しますか?

Sub move_data() 
Dim lastRow As Long, lastCol As Long 
Dim ws As Worksheet 

Set ws = Worksheets("Sheet2") 
lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row 
lastCol = ws.UsedRange.Columns.Count 

Dim i As Long 
For i = 1 To lastRow 
    If ws.Cells(i, lastCol) = "" Then 
     ws.Cells(i, ws.Cells(i, 1).End(xlToRight).Column).Cut ws.Cells(i, lastCol) 
    End If 
Next i 

End Sub 

私はUsedRangeを使用することを躊躇しますが、あなたのデータは大丈夫動作するはずです「ブロック」に存在しない場合。基本的には、各行をチェックし、最後の列が空の場合は、最後のセルを列Aからその列に移動します。

+0

ありがとうございました!あなたのコードは夢のように働いた! – mjkutzman

関連する問題