【问题标题】:Excel: Copy Dynamic Range from one worksheet to anotherExcel:将动态范围从一个工作表复制到另一个工作表
【发布时间】:2016-09-17 02:02:12
【问题描述】:

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

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

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

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

谢谢, 海莉

【问题讨论】:

    标签: vba excel


    【解决方案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 个示例,这些示例具有空白单元格但已选择区域,您可以轻松查看范围中的起点和终点以及整个空白行或列如何形成范围。

    【讨论】:

      【解决方案2】:

      在“MyKPIs”表的Forms工具栏中放置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 列的第一个空单元格处停止。这应该可以帮助您开始。

      【讨论】:

      • 谢谢@ib11,但是我在 Range("B5").Select 中遇到错误
      • 1004: Range 类的选择消息失败@ib11
      • 很高兴听到!如果它解决了您的问题,请不要忘记投票并接受答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 2022-11-14
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多