【问题标题】:Copy and paste data from the 1st row into empty rows beneath till it reach the next row with data and repeat将第一行的数据复制并粘贴到下面的空行中,直到它到达下一行的数据并重复
【发布时间】:2015-05-03 13:57:16
【问题描述】:

我在 A 列到 G 列的第 2 到 101 行中有 100 行数据。 单元格 A2 到 E2 已填满,F2 到 G2 最初为空白。

  • 我想在每行之间插入 50 个空行。
  • 分别插入 50 个空行后。我将在 F&G 列中输入数据(例如单元格 F2 到 G52)。

我希望自动将第一行的数据(例如 A2 到 E2)复制并粘贴到剩余的 50 个空白单元格 A3 到 E52 中。其余 99 行将重复此过程。

【问题讨论】:

  • 请提出一个问题(如果可能,请与编程相关,而不仅仅是“告诉我该怎么做”)

标签: vba


【解决方案1】:

在插入/删除行或列时,最佳做法是从行底部开始或从右侧开始列,然后朝着 A1 方向工作。

Sub clone_row_data()
    Dim rw As Long, lr As Long, frw As Long, lrw As Long, blnks As Long

    frw = 2    'first row
    lrw = 100  'last row
    blnks = 50 'insert this many blanks

    With ActiveSheet
        For rw = lrw To frw Step -1
            .Cells(rw, 1).Offset(1, 0).Resize(blnks, 5).EntireRow.Insert
            .Cells(rw, 1).Resize(blnks + 1, 5).FillDown
        Next rw
    End With
End Sub

通过向后工作,您可以保持简单的增量计数并避免行/列被跳过或重复。

【讨论】:

    【解决方案2】:

    吉普车。它奏效了,感谢您的及时回复。
    我在从 ColA 到 G 的第 2 到 11 行中有 10 行数据。单元格 A2 到 G11 已填满。这是第 1 组数据。我在从 ColA 到 L 的第 12 到 36 行中有 25 行数据。这是第 2 组数据。我有剩余的 98 组数据(在每组中,它填充了不同的列)。 (a) 我想在每组之间插入 1 个空行。 (b) 对于第 1 组,我希望将每组最后一行的数据(例如 C11 到 G11)自动复制并粘贴到下一个空白 C12 到 G12 中。 A11 是参考日期(2015 年 3 月),B11 是数字。我希望 A12 包含下一个期间(Apr2015)并且 B12 为空白。我将在 Col B 中输入数据(例如 Cell B12)。 (c) 对于第 2 组,将数据从 A36 到 L36 自动复制并粘贴到下一个空白 A37 到 L37 中。 A36 是参考日期(2010 年),M36 是数字。我希望 A37 包含下一个时期(2011 年)和 M37 为空白。我将在 M 列(例如单元格 M37)中键入数据。 其余 98 组将重复此过程。在每个组中,它填充了不同的列。

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多