仅复制多个插入行中的公式

Posted

技术标签:

【中文标题】仅复制多个插入行中的公式【英文标题】: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 函数来检查单元格是否包含公式,而不是复制整行,您可以只复制包含公式的单元格。否则,您可以复制整行,然后删除不包含公式的单元格。 【参考方案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

【讨论】:

以上是关于仅复制多个插入行中的公式的主要内容,如果未能解决你的问题,请参考以下文章

如何从最后插入的行中获取值? [复制]

将公式插入单元格 VBA Excel 时出现运行时错误 1004

INDEX中的相对引用在插入行后不移位

如何在空白行之间插入动态公式?

在具有红色填充的列中将公式插入每个单元格[关闭]

带有公式的visio 插入到word变 模糊而且拉伸了,怎么办