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

我正试图从一个工作表复制一个dynamic范围(B12:Lxx)到另一个。 我需要复制的范围停在第一个空行(还有额外的数据进一步向下,我不想复制)。

我是一个非常基本的VBA用户,所以如果你可以明确地指出你的指示,这将是方便的。

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

我已经浏览了其他文章,但没有find任何我可以使用的东西。

谢谢,海莉

从“MyKPIs”工作表上的“表单”工具栏中放置一个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中的第一个空单元格。这应该会帮助你开始。

这将工作。 在工作表上插入一个命令button。 双击button。 在sub和end之间粘贴这个代码。

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

它应该看起来像这样,当你通过。 然后转到开发者选项卡上的工作表closuresdevise模式,然后单击button。

 Private Sub CommandButton1_Click() Worksheets("MyKPIs").Range("b12").CurrentRegion.Copy Worksheets("Month Template").Range("b5") End Sub 

对于那些不熟悉当前区域的人来说,请看下面的2个空白单元格的样本,但是这个区域被选中了,你可以很容易地看到范围内的开始点和结束点,以及整个空白行或列是如何形成范围的。

currentregion sample1

currentregion sample2