快速的方法来复制excel公式VBA

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

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

this.formula = cellaboveit.formula

但是这是抄袭确切的公式。 我想知道是否有办法抵消单元格上方单元格中的公式。

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

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

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

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

此外,我build议如果你只是简单地复制单元格的列向下,然后不是逐个单元格,而是作为批处理例如。

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

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