【问题标题】:How to copy last 10 active rows instead of last active row如何复制最后 10 个活动行而不是最后一个活动行
【发布时间】:2016-06-13 22:34:02
【问题描述】:

目前我有一个 vba 代码,它将用公式和所有复制最后一个活动行并将其粘贴到它下面的下一行。相反,我希望它复制最后 10 个活动行并将它们粘贴在它下面。有人可以帮我调整我当前的代码以帮助实现这一点吗?

    'Sub RunMost()

       Dim ws As Worksheet


           For Each ws In Sheets
            If ws.Name = ("Sheet1") Then
              ws.Activate

    ' Go to last cell
    Cells(Rows.Count, 2).End(xlUp).Offset(2, 0).Select

    ' Copy formula from cell above
    Rows(Selection.Row - 1).Copy
    Rows(Selection.Row).Insert Shift:=xlDown
  End If
  Next ws

End Sub

【问题讨论】:

  • 你试过用Rows(Selection.Row - 10)替换Rows(Selection.Row - 1)吗?
  • 我建议通读how to avoid using .Select,这应该会对此有所了解。我相信,如果您通读本文,您至少可以开始 调整上述内容以进行循环。还有@Dave 的建议……
  • 范围(rows(selection.row-11),rows(selection.row-1)).copy
  • 是的@Dave 我确实尝试过,但它只选择了第 10 行
  • @Nathan_Sav 成功了!谢谢!

标签: excel vba copy-paste


【解决方案1】:

range(rows(selection.row-11),rows(selection.row-1)).copy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2011-08-23
    • 1970-01-01
    相关资源
    最近更新 更多