Vba 将公式设置为单元格范围

Vba 将公式设置为单元格范围,vba,excel,excel-formula,Vba,Excel,Excel Formula,这是我想做的简单演示。我想将公式设置为单元格范围(例如C1到C10) 但如何使公式使用如下动态单元格: Range("C1:C10").Formula = "=Ax+Bx" 所以实际上呢就是, C1 = A1 + B1 C2 = A2 + B2 C3 = A3 + B3 C4 = A4 + B4 C5 = A5 + B5 ... C10 = A10 + B10 如何更改此公式的RHS以使上述公式生效:范围(“C1:C10”)。公式=“=Ax+Bx”我将更新C1中的公式。然后从C1复制公式并粘

这是我想做的简单演示。我想将公式设置为单元格范围(例如C1到C10)

但如何使公式使用如下动态单元格:

Range("C1:C10").Formula = "=Ax+Bx"
所以实际上呢就是,

C1 = A1 + B1
C2 = A2 + B2
C3 = A3 + B3
C4 = A4 + B4
C5 = A5 + B5
...
C10 = A10 + B10

如何更改此公式的RHS以使上述公式生效:
范围(“C1:C10”)。公式=“=Ax+Bx”
我将更新C1中的公式。然后从C1复制公式并粘贴到C10

不确定是否有更优雅的解决方案

Range("C1").Formula = "=A1+B1"
Range("C1").Copy
Range("C1:C10").Pastespecial(XlPasteall)
使用公式1c1:

Cells((1,3),(10,3)).FormulaR1C1 = "=RC[-2]+RC[-1]"

与公式不同,公式1c1有相对引用。

我认为这是可能的最简单答案:两行,非常容易理解。它模拟了在一系列单元格中拖动单元格中编写的公式的功能

Range("C1").Formula = "=A1+B1"
Range("C1:C10").FillDown
就这么简单

它用公式自动填充(填充)范围。

使用此选项

            Sub calc()


            Range("C1:C10").FormulaR1C1 = "=(R10C1+R10C2)"


            End Sub

这种方法没有什么错,只是比我的答案中的代码慢得多。它使用的是复制粘贴技术,在处理多个单元格时效率不高。@mehow同意。。如果公式是嵌套的和复杂的,那么这将更容易理解和编写。更简单的解决方案您的示例的语法不可接受。你的意思是
范围(单元格(1,3),单元格(10,3))。公式1c1=“=RC[-2]+RC[-1]”
?这确实应该被接受为答案,因为它在一行代码中完成了O.P.的请求。除非已经晚了2年。我的评论也是如此。
Range("C1:C10").Formula = "=A1+B1"
            Sub calc()


            Range("C1:C10").FormulaR1C1 = "=(R10C1+R10C2)"


            End Sub