仅复制多个插入行中的公式
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
【讨论】:
以上是关于仅复制多个插入行中的公式的主要内容,如果未能解决你的问题,请参考以下文章