我正在尝试让我的代码找到工作表中的最后一行并复制整个行并将其粘贴到下面。目前我有:
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行等?
答案 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
不要选择东西,这是非常糟糕的做法。