Set formula to a range of cells

2019-01-17 11:43发布

this is simple demo of what i want to do. I want to set a formula to a range of cells(eg. C1 to C10).

Range("C1").Formula = "=A1+B1"

but how to make formula use dynamic cells like this:

Range("C1:C10").Formula = "=Ax+Bx"

so in reality it is like,

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

how to change RHS of this formula to make above working: Range("C1:C10").Formula = "=Ax+Bx"

6条回答
唯我独甜
2楼-- · 2019-01-17 12:19

I think this is the simplest answer possible: 2 lines and very comprehensible. It emulates the functionality of dragging a formula written in a cell across a range of cells.

Range("C1").Formula = "=A1+B1"
Range("C1:C10").FillDown
查看更多
乱世女痞
3楼-- · 2019-01-17 12:22

Use FormulaR1C1:

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

Unlike Formula, FormulaR1C1 has relative referencing.

查看更多
叛逆
4楼-- · 2019-01-17 12:28

I would update the formula in C1. Then copy the formula from C1 and paste it till C10...

Not sure about a more elegant solution

Range("C1").Formula = "=A1+B1"
Range("C1").Copy
Range("C1:C10").Pastespecial(XlPasteall)
查看更多
放我归山
5楼-- · 2019-01-17 12:33
Range("C1:C10").Formula = "=A1+B1"

Simple as that.

It autofills (FillDown) the range with the formula.

查看更多
做自己的国王
6楼-- · 2019-01-17 12:33

Use this

            Sub calc()


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


            End Sub
查看更多
倾城 Initia
7楼-- · 2019-01-17 12:34

If you're trying to fill a column, you can do this on Excel 2010 with a single keyboard command:

  1. Set the formula of the upper-left-most cell
  2. Select the entire range
  3. Hit Ctrl-d

Ctrl-D will either fill-across a selected row, or fill-down a selected array or column. Relative referencing is applied.

查看更多
登录 后发表回答