快速复制excel公式VBA的方法

时间:2014-07-15 00:01:01

标签: excel vba

我正在自动化一张巨大的工作表,我需要为工作簿编写一个新宏,它将在几张表中插入行,然后复制所有公式。我有pastespecial = xlpasteformulas,但这导致宏运行有点滞后,即使计算设置为自动。

我知道有一种方法让每个单元格都像这样

this.formula = cellaboveit.formula

但这是复制确切的公式。我想知道是否有办法抵消细胞上方细胞中的公式。

2 个答案:

答案 0 :(得分:3)

Range("C4:D4").Resize(5).FillDown

将填充C4:D4中的公式以填充接下来的四行

答案 1 :(得分:2)

我认为在复制公式之前将计算模式设置为手动,然后将其重置为自动是最好的。在自动中,它通常想要计算每个副本的公式。

Application.Calculation = xlCalculationManual
'Do stuff here
Application.Calculation = xlCalculationAutomatic

此外,如果您只是沿着列向下复制单元格公式,然后不是逐个单元格地复制单元格公式,而是作为批处理例如,我建议。

Range(myCopyCell).Select
Selection.Copy
Range(myPasteRange).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

其中myCopyCell是包含您要复制的公式的单元格,myPastRange是您希望公式前进的完整范围。