2016-07-21 7 views
1

これは私には答えを見つけることができない奇妙な質問の少しです: 私は最後の行を選択したいと思います。多分Cells(Rows.Count, Column.Count).End(xlUp).Row )、前の行の最後に移動します。最後の行を選択して、前の行の最後の列に移動します

私はトランスポーズ機能(コピー/ペースト)と同様のものを使用するように考えていた:

Dim r As Range, N As Long 
N = Cells(Rows.Count, "A").End(xlUp).Row 
Set r = Cells(N, Column.Count).EntireRow 
r.Copy 
Cells(N + 1, 1).PasteSpecial Transpose:=True 
r.Delete 

Before

enter image description here

した後は、誰かを持っています同じようなことをしたndは助けやアドバイスをしたいと思っていますか?

答えて

1

これは、トリックを行います:N = Cells(Rows.Count, "A").End(xlUp).row

  • は、列の最初のセルから最後のセルの範囲を作成します。ここでは

    Dim N As Long 
    N = Cells(Rows.Count, "A").End(xlUp).row 
    Range(Cells(N, 1), Cells(N, Columns.Count).End(xlToLeft)).Cut Cells(N - 1, Columns.Count).End(xlToLeft).Offset(0, 1) 
    

    を故障

    • が最後の行を決定しています
      • 第1セル:Cells(N, 1)
      • 最後のセル:Cells(N, Columns.Count).End(xlToLeft)
    • 第1の範囲を切り取り、貼り付け、上記の行の最後に使用されたカラムの範囲の参照を作成し、右
      • Cells(N - 1, Columns.Count).End(xlToLeft).Offset(0, 1)
      • 1つの列の参照を移動第二範囲に
      • Range(Cells(N, 1), Cells(N, Columns.Count).End(xlToLeft)).Cut Destination:=Cells(N - 1, Columns.Count).End(xlToLeft).Offset(0, 1)
  • +0

    それは魅力のように働いた!最後のコード行の背後にある根拠を説明してもらえますか? – pdx

    +0

    私は自分の答えに内訳を追加しました。チェックありがとう! –

    +0

    ありがとうございました:) – pdx

    関連する問題