Excel:将动态范围从一个工作表复制到另一个工作表

时间:2016-05-20 00:01:55

标签: excel vba excel-vba

我正在尝试将动态范围(B12:Lxx)从一个工作表复制到另一个工作表。我需要复制的范围停在第一个空行(在工作表的下方还有其他数据,我不想复制)。

我是一个非常基本的VBA用户,所以如果你能明确地列出你的指示,那就很方便了。

  • 来源:工作表“MyKPIs”,动态范围 B12:Lxx (列L已设置,行号可变,但必须在第一个空行结束)
  • 目标:工作表“月份模板”,单元格B5
  • 触发器将是一个命令按钮

我已经浏览了其他文章,但未找到任何我可以使用的文章。

谢谢, 海莉

2 个答案:

答案 0 :(得分:1)

这会奏效。在工作表上插入一个命令按钮。双击按钮。在sub和end sub之间粘贴此代码。

Worksheets("MyKPIs").Range("b12").CurrentRegion.Copy Worksheets("Month Template").Range("b5")
当你经历时,它应该看起来像这样。然后转到开发人员选项卡上的工作表,切换设计模式,然后单击按钮。

Private Sub CommandButton1_Click()

Worksheets("MyKPIs").Range("b12").CurrentRegion.Copy Worksheets("Month Template").Range("b5")

End Sub

对于那些没有经历过currentregion的人,请查看下面的2个样本,这些样本有空白单元但是区域被选中,您可以轻松查看范围内的起点和终点以及整个空行或列如何形成范围。 / p>

currentregion sample1

currentregion sample2

答案 1 :(得分:0)

从“MyKPI”表单的表单工具栏中放置command button

然后添加此代码:

Sub Button1_Click()

    Dim myrange

    Set myrange = Sheets("MyKPIs").Range("B12:L12")
    myrange.Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Worksheets("Month Template").Range("B5")

End Sub

考虑到B列中的所有单元格都有数据,这将复制该范围内的所有单元格。它将停在B列的第一个空单元格。这应该可以帮助您开始。