拖动公式而不拖动
我连续有几个公式,我想把它们拖下来。 公式是复杂的,我没有他们在R1C1格式,我不想将它们转换成R1C1,但我想做的事情是这样的:
Range(A2:B10).Formula = Range.(A1:B1).Formula
我知道这样会把同一个公式放到整个范围内,我需要一个“拖动效果” – 所以它相对于每一行都有变化,但是没有粘贴 。
PS我不想复制粘贴,因为它吃更多的CPU,我想有东西
定义要用公式填充的范围,并使用Range.FillDown
。
Range("A1:B10").FillDown
注意:范围的第一行必须包含原始公式
一个小窍门!
Sub KopyFormulas() Range("A1:B1").Copy Range("A2:B10") End Sub
将向下复制公式,并调整它们!
对于单个单元格,您不需要显式地将公式转换为R1C1格式以使用FormulaR1C1
。
即使您正在使用标准的A1
引用风格,仍然可以使用
Range("B2:B10").FormulaR1C1 = Range("B1").FormulaR1C1
这会影响到复制B1
的公式。 它不会更改默认格式 – 它们仍将以A1
格式显示。
用两个或两个以上的单元块做这个似乎确实有问题。 你可以一栏一列(如果需要,在循环中):
Range("A2:A10").FormulaR1C1 = Range("A1").FormulaR1C1 Range("B2:B10").FormulaR1C1 = Range("B1").FormulaR1C1
这是否值得这个麻烦(与简单的.FillDown
相比)是另外一个问题。 你可以计时。
顺便说一句 – 我不会这么想.FillDown
特别低效。 你有没有做closures屏幕更新,设置计算手动等通常的优化?