【问题标题】:Copy a range from sheet1 to sheet2将范围从 sheet1 复制到 sheet2
【发布时间】:2018-01-31 21:20:53
【问题描述】:

我对 VBA 很陌生,但我希望有人可以帮助我。这是我想做的;

  1. 我在 Sheet1 中有一个范围(“A4:C500”),其中有一些空单元格,例如。第 180 行
  2. 我想将整个范围复制到 Sheet2
  3. 之后,如果我在表 1 中插入新行,例如。 “A24:C24”,我用值填充例如“A24:C24”,我想首先在Sheet2的“A24”中插入一个完整的新行(与Sheet1中的新行相同的行)并将所有现有单元格向下移动1行在 Sheet2 中。 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. 工作?有什么想法可以尝试吗?

提前致谢

【问题讨论】:

标签: vba excel copy-paste named-ranges


【解决方案1】:

要执行 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 在他的 cmets 中提到的,有很多文档可以帮助您解决诸如此类的问题。 K.Dᴀᴠɪs 提供的链接:

【讨论】:

    猜你喜欢
    • 2020-08-02
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多