首页 > 解决方案 > 在将数据粘贴到新工作表之前添加行(在特定单元格之间)

问题描述

我有一张包含数据的表格,我想将其数据复制到另一张表格中。这很简单,但问题是,我必须将该选择复制到设置的两个单元格之间的范围内,所以如果我在第一张表中添加另一行数据,那么当宏运行时,数据将覆盖下面的单元格限制。如果我在第一张工作表中添加一行,如何在宏将数据粘贴到另一张工作表中之前创建另一行或多行以避免覆盖以下限制?例如,如果两个单元格之间的行数是 5,我需要粘贴的范围是 7,那么,在粘贴数据之前,宏会再创建两行。

谢谢

标签: excelvba

解决方案


计算差异并根据需要添加行

Option Explicit
Sub CopyInsert()

    Dim rngSource As Range
    Set rngSource = Selection ' range to copy from

    Const SHEET_TARGET = "Sheet2"
    Const RNG_TARGET = "C12:C16"

    Dim wb As Workbook, wsTarget As Worksheet
    Dim rngTarget As Range, n As Long

    Set wb = ThisWorkbook
    Set wsTarget = wb.Sheets(SHEET_TARGET)
    Set rngTarget = wsTarget.Range(RNG_TARGET)

    ' insert new ones
    n = rngSource.Rows.Count - rngTarget.Rows.Count
    If n > 0 Then
        rngTarget.Rows("2:" & n + 1).EntireRow.Insert
    End If

    rngSource.Copy rngTarget.Cells(1, 1)

End Sub

推荐阅读