复制从 sheet1 到 sheet2 的范围

Copy a range from sheet1 to sheet2

我是 VBA 的新手,但我希望有人能帮助我。这是我想做的;

  1. 我在 Sheet1 中有一个范围 ("A4:C500"),其中有一些空单元格,例如。第 180 行
  2. 我想将整个范围复制到 Sheet2
  3. 之后,如果我在 Sheet 1 中插入一个新行,例如。 "A24:C24" 并且我用值填充例如 "A24:C24",我想首先在 "A24" 中插入一个完整的新行 Sheet2(与 [=37 中的新行相同的行=]1) 并将 Sheet2 中的所有现有单元格向下移动 1 行。 Sheet2 中的新行应复制上一行的公式(例如,第 24 行应复制第 23 行的公式)
  4. 在 Sheet2 中插入新行后,我想将值从 Sheet1 "A24:C24" 复制到 Sheet2 "A24:C24"

关于 2。我尝试使用一些代码,例如;

Sub Copy()
    Ark1.Range("A4:C500").Copy
    Ark2.Range("A4").Rows("1:1").Insert Shift:=xlDown
End Sub

这基本上解决了 2.

如何让 3. 和 4. 工作?我有什么想法可以尝试吗?

提前致谢

要执行 3 和 4,您可以使用以下代码:

With Ark1
    'insert new row in sheet one
    .Row("24").Insert Shift:=xlDown
    'fill range A24:C24 with values
    .Range("A24:C24").Value = Array("Your", "Values", "Here")
    ' Or if specific cell values (.cells(row, column).value) Array(.cells(1,1).value, .cells(1,2).value, .cells(1,3).value)
End With

With Ark2
    'copy row to retain formulas
    .Row(23).Copy
    'insert new row in sheet two
    .Row(24).Insert Shift:=xlDown
    'get values from sheet one to sheet 2
    .Range("A24:C24").Value = Ark1.Range("A24:C24").Value
End With

P.S.: 正如 K.Dᴀᴠɪs 在他的评论中提到的那样,有很多文档可以帮助您解决此类问题。 K.Dᴀᴠɪ提供链接:


  • Copy Range From One Sheet Paste Part of Range In Same Sheet Based On Cell Value On Another Sheet
  • VBA - Copy variable range from one sheet to another