Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Formula for VBA

HELP!!!

I need to show a formula in a cell which would calculate the average
of a list of numbers. Recording a macro yielded the following results:

Range("A25").Select
ActiveCell.FormulaR1C1 = "=average(R[-18]C:R[-3]C)"


Here's the problem: the list of numbers is always either growing or
shrinking, so the formula would not always be in Cell A25, and we
wouldn't always be offsetting by 18 rows, etc. This would be simple to
do if I din't need to show the formula itself, but I have to.

I tried the following:

a = -18
b = -3
Range("A25").Select
ActiveCell.FormulaR1C1 = "=average(R[a]C:R[b]C)"


(This was done for example purposes - I will be using offsets to
achieve selecting a growing or shrinking range...)

I received an error message - I guess you can't use an R1C1 convention
with variables. Is there another way to do this? I need to show the
formula in the cell due to data manipulation purposes; also, this
would be part of a program which would have other calculations and a
requirement has been that formulas be shown.

Any help on this matter will be greatly appreciated!

Thanks,


Haas


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 391
Default Formula for VBA

assuming the data column starts in A6, we want the
average function in the second cell below the column,
leaving a blank cell, without knowing the number of items
in the column.

Your code is:
Range("A6").End(xlDown).Offset(2,0).FormulaR1C1 = _
"=average(R6C:R[-2]C)"

the End(xlDown) method locates the last cell in the
column. The offset(2,0) refers to the cell 2 below this.
In the formula, we know row 6 is the first cell, so we
don't need an offset, R6C specifically points to row 6.
The last cell is two rows above - defined by our Offset -
so we can use R[-1]C to point to this cell.

Patrick Molloy
Microsoft Excel MVP


-----Original Message-----
HELP!!!

I need to show a formula in a cell which would calculate

the average
of a list of numbers. Recording a macro yielded the

following results:

Range("A25").Select
ActiveCell.FormulaR1C1 = "=average(R[-18]C:R[-3]C)"


Here's the problem: the list of numbers is always either

growing or
shrinking, so the formula would not always be in Cell

A25, and we
wouldn't always be offsetting by 18 rows, etc. This

would be simple to
do if I din't need to show the formula itself, but I

have to.

I tried the following:

a = -18
b = -3
Range("A25").Select
ActiveCell.FormulaR1C1 = "=average(R[a]C:R[b]C)"


(This was done for example purposes - I will be using

offsets to
achieve selecting a growing or shrinking range...)

I received an error message - I guess you can't use an

R1C1 convention
with variables. Is there another way to do this? I need

to show the
formula in the cell due to data manipulation purposes;

also, this
would be part of a program which would have other

calculations and a
requirement has been that formulas be shown.

Any help on this matter will be greatly appreciated!

Thanks,


Haas


.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Commenting custom formula fields/formula on formula editor Muxer Excel Programming 2 July 24th 03 01:02 AM


All times are GMT +1. The time now is 10:13 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"