Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set formula to a range of cells

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"

like image 336
Vpp Man Avatar asked Mar 20 '13 11:03

Vpp Man


People also ask

How do you write a formula for a range of cells?

Select the cell with the formula and the adjacent cells you want to fill. Click Home > Fill, and choose either Down, Right, Up, or Left. Keyboard shortcut: You can also press Ctrl+D to fill the formula down in a column, or Ctrl+R to fill the formula to the right in a row.

How do you set a range of cells in Excel?

Press F5 or CTRL+G to launch the Go To dialog. In the Go to list, click the name of the cell or range that you want to select, or type the cell reference in the Reference box, then press OK. For example, in the Reference box, type B3 to select that cell, or type B1:B3 to select a range of cells.

How do you assign a value based on a number range in Excel?

1. Select a blank cell, enter the following formula and press the Enter key. Select the result cell, drag its AutoFill Handle down to the cells where you want to apply the formula. Notes: If the given number is not in the specified number range, the formula will return the result as 0.


4 Answers

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

Simple as that.

It autofills (FillDown) the range with the formula.

like image 170
lineil Avatar answered Sep 16 '22 20:09

lineil


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 
like image 21
Baumann Avatar answered Sep 18 '22 20:09

Baumann


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)
like image 21
The King Avatar answered Sep 17 '22 20:09

The King


Use FormulaR1C1:

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

Unlike Formula, FormulaR1C1 has relative referencing.

like image 45
user2626806 Avatar answered Sep 16 '22 20:09

user2626806