快速复制excel公式的方法VBA



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

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

。公式= cellaboveit.formula

但那是在复制完全相同的公式。我想知道是否有一种方法可以在单元格上方的单元格中抵消公式。

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

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

我认为在复制公式之前将计算模式设置为手动,然后将其重置为自动将是最好的。在automatic中,它经常希望在每次拷贝时计算公式。

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是要复制公式的整个范围。

最新更新