选择整个最后一行

时间:2017-06-28 21:42:50

标签: excel vba count rows copy-paste

我正在尝试让我的代码找到工作表中的最后一行并复制整个行并将其粘贴到下面。目前我有:

Cells(Application.Rows.Count, 1).End(xlUp).Select
Selection.Copy
Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select
Selection.Insert Shift:=xlDown
 Application.CutCopyMode = False

找到行中的最后一个单元格非常棒,但是当它复制/粘贴它时,它只抓取第一个单元格。所以,我想知道的是,如果您可以使用此代码查找最后一行,然后选择整个行,然后将其复制/粘贴到下面。请记住,我不能只输入

Rows("3:3").Select
Selection.Copy
Rows("4:4").Select
Selection.Insert Shift:=xlDown

因为行是可变的。谢谢!

Dim lastRow As Long

lastRow = Cells(Application.Rows.Count, 1).End(xlUp).Row

 Rows(lastRow).Select
 Selection.Copy
 Rows(lastRow).Offset(1, 0).Select
 Selection.Insert Shift:=xlDown
 Application.CutCopyMode = False

上面的代码将找到最后一行,选择它,复制它,并将其粘贴到下面。但是,在某些情况下,我需要复制最后一行并将其粘贴在它下面的几行中,所以:

  Rows("3:3").Select
Selection.Copy
Rows("4:16").Select
Selection.Insert Shift:=xlDown

有些效果,但是我无法将所选行粘贴到多行中,因为

 Rows(lastRow:4).Select

吓坏了。有没有办法添加" 16"到最后一行,所以它复制行并将其粘贴到接下来的14行等?

2 个答案:

答案 0 :(得分:3)

您可以使用.Resize'选择'多行,然后填写。

dim rws as long
rws = 14   'total # of rows 3:16
with worksheets("sheet1")
    .cells(.rows.count, "A").end(xlup).resize(rws, .columns.count).filldown
end with

答案 1 :(得分:1)

你需要调整它的大小

Sub temp()
    Dim lr As Long
    lr = Range("A" & Rows.Count).End(xlUp).Row
    Rows(lr).Copy
    Range("A" & lr).Resize(14, Columns.Count).PasteSpecial xlPasteAll
End Sub

不要选择东西,这是非常糟糕的做法。