选择最后一行并将其移动到上一行的最后一列

时间:2016-07-21 09:43:09

标签: vba excel-vba excel

这是一个奇怪的问题,我无法找到答案: 我想选择最后一行(可能使用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

有人做了类似的事情并且愿意分享一些帮助/建议吗?

1 个答案:

答案 0 :(得分:1)

这样可以解决问题:

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)

以下是细分

  • 确定最后一行:N = Cells(Rows.Count, "A").End(xlUp).row
  • 创建从列的第一个单元格到最后一个单元格的范围
    • First Cell:Cells(N, 1)
    • 最后一个单元格:Cells(N, Columns.Count).End(xlToLeft)
  • 创建对上一行中上次使用的列的范围引用,并将引用向右移动一列
    • Cells(N - 1, Columns.Count).End(xlToLeft).Offset(0, 1)
    • 剪切第一个范围并将其粘贴到第二个范围
    • Range(Cells(N, 1), Cells(N, Columns.Count).End(xlToLeft)).Cut Destination:=Cells(N - 1, Columns.Count).End(xlToLeft).Offset(0, 1)