【问题标题】:Copy only formulas in multiple inserted rows仅复制多个插入行中的公式
【发布时间】:2016-06-15 09:26:07
【问题描述】:

我有以下 Excel 电子表格:

      A                B            C
1    Product A         $50         =B1*4
2    Product B         $10         =B2*4
3    Product C         $20         =B2*4

我正在使用以下公式在第 1 行和第 2 行之间插入新行。

Sub Insert_Multiple_Rows()
Tabelle1.Range("2:3").EntireRow.Insert
Tabelle1.Range("2:3").Formula = Tabelle1.Range("1:1").Formula
End Sub

此公式完美运行,可插入新行并复制所有公式和值。

但是,我想要实现的是只有带有公式的单元格将被复制到新插入的单元格中,而所有其他单元格保持空白。在上述情况下,这意味着只有 C 列中的公式被复制到新插入的行中,而 A 列和 B 列在新插入的行中保持空白。

你们知道如何从插入行代码中排除包含值而不是公式的单元格吗?

感谢您的帮助。

【问题讨论】:

  • 您可以使用工作表中的ISFORMULA 函数来检查单元格是否包含公式,而不是复制整行,您可以只复制包含公式的单元格。否则,您可以复制整行,然后删除不包含公式的单元格。

标签: excel vba


【解决方案1】:

这是一个选项

Sub Insert_Multiple_Rows()
    Tabelle1.Range("2:3").EntireRow.Insert
    Tabelle1.Range("2:3").Formula = Tabelle1.Range("1:1").Formula
    Tabelle1.Range("2:3").SpecialCells(xlCellTypeConstants).ClearContents
End Sub

否则这里是另一种解决方案

Sub Insert_Multiple_Rows()
    Tabelle1.Range("2:3").EntireRow.Insert
    Intersect(Tabelle1.Range("1:1").SpecialCells(xlCellTypeFormulas).EntireColumn, Tabelle1.Range("1:3")).FillDown
End Sub

两者都给出相同的结果

【讨论】:

    【解决方案2】:

    这样就可以了

    行(1).复制

    Rows(2).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2023-01-17
      相关资源
      最近更新 更多