【发布时间】:2017-06-29 08:08:12
【问题描述】:
我试图让我的代码找到工作表中的最后一行,然后复制整行并将其粘贴到下面。目前我有:
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 行中,等等?
【问题讨论】:
-
Cells(Application.Rows.Count, 1).End(xlUp).EntireRow.Select应该让你开始。也不需要选择东西 -
为了扩展@MacroMarc 的最后一句话,强烈建议avoid using
.Select/.Activate。 -
fwiw,如果您确实是从下往上查找最后使用的行,则不必在用值/公式填充接下来的 13 个空白行之前插入 13 个新行。跨度>
标签: excel vba count rows copy-paste