【问题标题】:Select Entire Last Row选择整个最后一行
【发布时间】: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


【解决方案1】:

您可以使用 .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

【讨论】:

  • 漂亮的吉普车:)。
【解决方案2】:

你需要调整它的大小

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

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

【讨论】:

    猜你喜欢
    • 2013-09-10
    • 1970-01-01
    • 2021-04-17
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多