Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4
Default Using .formular1c1 with the Range/Cells Method

Given a worksheet function that accepts a range of values, Average(Range),
for example.....

What is the method to use the .formulaR1C1 method within VBA to assign the
Average formula to a cell, assuming that I want to define the formula from
within VBA using the Range/Cells method(s).

Example:

Macro recorder provides the following code to define a cell using the
Average function:

ActiveCell.FormulaR1C1 = "=AVERAGE(R[-4]C[-2]:R[12]C[-2])"

Can this be done via something like:

Dim Rindex as Integer
Dim Cindex as Integer

Rindex=3
Cindex=7

strArg= "=" & Range(Cells(Rowindex, Colindex),Cells(Rowindex+7,Colindex))
ActiveCell.FormulaR1C1 = "=" & strArg

and have it parse correctly....

i.e. I would like to be able to manipulate the .FormulaR1C1 line via
variables that get worked upon prior to setting the formula in the cell.

Thank you in advance for the assistance.

--


Frank Bachman
(Grumpy Aero Guy)



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 863
Default Using .formular1c1 with the Range/Cells Method

If you tried to run the code you show here, you would find out that it won't
work.

For the first thing, you didn't specify the key word AVERAGE as part of the
formula (typo?). For the 2nd, the word AVERAGE must be followed by a left
parenthesis, then the ADDRESS of the range you are talking about, in R1C1
format, then a closing parenthesis.

What you wrote gets the 8 VALUEs from the range G3:G10, not the address.

You have to generate the address of the range in the correct format, as a
string, then incorporate that into the formula. I would do it like this

Dim Rindex as Long 'row numbers can be 32767
Dim Cindex as Integer

Rindex=3
Cindex=7

strArg = Cells(RowIndex, ColIndex).Resize(8,1).Address(,,xlR1C1)
strArg= "=AVERAGE(" & strArg & ")"
ActiveCell.FormulaR1C1 = strArg

That should produced a formula with absolute references, =AVERAGE($G$3:$G$10).
Look up the address property in Help if you want a formula with relative
references.

On Mon, 31 Jan 2005 23:30:03 -0500, "Grumpy Aero Guy"
wrote:

Given a worksheet function that accepts a range of values, Average(Range),
for example.....

What is the method to use the .formulaR1C1 method within VBA to assign the
Average formula to a cell, assuming that I want to define the formula from
within VBA using the Range/Cells method(s).

Example:

Macro recorder provides the following code to define a cell using the
Average function:

ActiveCell.FormulaR1C1 = "=AVERAGE(R[-4]C[-2]:R[12]C[-2])"

Can this be done via something like:

Dim Rindex as Integer
Dim Cindex as Integer

Rindex=3
Cindex=7

strArg= "=" & Range(Cells(Rowindex, Colindex),Cells(Rowindex+7,Colindex))
ActiveCell.FormulaR1C1 = "=" & strArg

and have it parse correctly....

i.e. I would like to be able to manipulate the .FormulaR1C1 line via
variables that get worked upon prior to setting the formula in the cell.

Thank you in advance for the assistance.


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 863
Default Using .formular1c1 with the Range/Cells Method

Sorry, I see I changed the variable names in the code I wrote. Should be

strArg = Cells(RIndex, CIndex).Resize(8,1).Address(,,xlR1C1)

On Mon, 31 Jan 2005 23:34:03 -0600, Myrna Larson
wrote:

If you tried to run the code you show here, you would find out that it won't
work.

For the first thing, you didn't specify the key word AVERAGE as part of the
formula (typo?). For the 2nd, the word AVERAGE must be followed by a left
parenthesis, then the ADDRESS of the range you are talking about, in R1C1
format, then a closing parenthesis.

What you wrote gets the 8 VALUEs from the range G3:G10, not the address.

You have to generate the address of the range in the correct format, as a
string, then incorporate that into the formula. I would do it like this

Dim Rindex as Long 'row numbers can be 32767
Dim Cindex as Integer

Rindex=3
Cindex=7

strArg = Cells(RowIndex, ColIndex).Resize(8,1).Address(,,xlR1C1)
strArg= "=AVERAGE(" & strArg & ")"
ActiveCell.FormulaR1C1 = strArg

That should produced a formula with absolute references,

=AVERAGE($G$3:$G$10).
Look up the address property in Help if you want a formula with relative
references.

On Mon, 31 Jan 2005 23:30:03 -0500, "Grumpy Aero Guy"
wrote:

Given a worksheet function that accepts a range of values, Average(Range),
for example.....

What is the method to use the .formulaR1C1 method within VBA to assign the
Average formula to a cell, assuming that I want to define the formula from
within VBA using the Range/Cells method(s).

Example:

Macro recorder provides the following code to define a cell using the
Average function:

ActiveCell.FormulaR1C1 = "=AVERAGE(R[-4]C[-2]:R[12]C[-2])"

Can this be done via something like:

Dim Rindex as Integer
Dim Cindex as Integer

Rindex=3
Cindex=7

strArg= "=" & Range(Cells(Rowindex, Colindex),Cells(Rowindex+7,Colindex))
ActiveCell.FormulaR1C1 = "=" & strArg

and have it parse correctly....

i.e. I would like to be able to manipulate the .FormulaR1C1 line via
variables that get worked upon prior to setting the formula in the cell.

Thank you in advance for the assistance.


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4
Default Using .formular1c1 with the Range/Cells Method

thankx for the insight !

--


Frank Bachman
(Grumpy Aero Guy)


"Grumpy Aero Guy" wrote in message
...
Given a worksheet function that accepts a range of values, Average(Range),
for example.....

What is the method to use the .formulaR1C1 method within VBA to assign the
Average formula to a cell, assuming that I want to define the formula from
within VBA using the Range/Cells method(s).

Example:

Macro recorder provides the following code to define a cell using the
Average function:

ActiveCell.FormulaR1C1 = "=AVERAGE(R[-4]C[-2]:R[12]C[-2])"

Can this be done via something like:

Dim Rindex as Integer
Dim Cindex as Integer

Rindex=3
Cindex=7

strArg= "=" & Range(Cells(Rowindex, Colindex),Cells(Rowindex+7,Colindex))
ActiveCell.FormulaR1C1 = "=" & strArg

and have it parse correctly....

i.e. I would like to be able to manipulate the .FormulaR1C1 line via
variables that get worked upon prior to setting the formula in the cell.

Thank you in advance for the assistance.

--


Frank Bachman
(Grumpy Aero Guy)





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
Range and Cells method Jenny Excel Programming 1 January 5th 05 03:10 AM
Range.delete method Touk Excel Programming 1 September 28th 04 06:15 AM
Adding named range gives error "method range of object _Global failed " Gunnar Johansson Excel Programming 3 August 10th 04 01:54 PM
Pass a range to a method? Frank Kabel Excel Programming 12 May 21st 04 02:50 AM
Activecell.FormulaR1C1 Versus ActiveSheet.cells(column, row) Ashish Shridharan Excel Programming 2 February 15th 04 04:46 PM


All times are GMT +1. The time now is 01:07 AM.

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"