我已经看过几次了,通常可以解决这个问题,但是我有一些国际用户要求我找出一些不同的东西。
我有一行,其中每一列都包含多个唯一的公式。我希望在一系列数据中重复。从本质上讲,这与复制粘贴公式相同,但是我试图加快此过程,然后立即将公式设置为值。但是,当我执行使用FormulaR1C1设置范围的代码时,它仅适用于第一行。
以下是该问题的极为简化的说明:
Range(“ C1:H1”)的公式=$B1/8+
每列的编号不同。我想在Range(“ C4:H12”)上复制此公式
使用此vba代码:
Range("C4:H12").FormulaR1C1 = Range("C1:H1").FormulaR1C1
适用于第一行(4),但是在第五行开始引用NEXT行(因此公式显示为= $ B6 / 8 +,并继续偏移。
我通常的解决方法是键入公式,然后将其保存在特定的位置,但是我与外国用户的问题是,我正在使用的复杂公式语法需要在单元格公式中设置。是的,我可以使用复制粘贴公式,但是我只是很好奇为什么会发生这种偏移。
您可以下载simple file her e(没有VBA)。
答案 0 :(得分:0)
虽然我无法解释行为,但我可以提供以下解决方案:
分两步进行
FormulaR1C1
获取第一个目标行的正确公式Formula
在目标范围内推广公式Sub Demo()
Range("C4:H4").FormulaR1C1 = Range("C1:H1").FormulaR1C1
Range("C4:H12").Formula = Range("C4:H4").Formula
End Sub