ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   FormulaR1C1 problem (https://www.excelbanter.com/excel-programming/387855-formular1c1-problem.html)

[email protected]

FormulaR1C1 problem
 
I have a macro that contains the line:

..Cells(irow + 2, 5).FormulaR1C1 = "=R[-1]C*R[-2]C3"

The first time a worksheet is created and the above code is executed
when irow=15, the formula produced in E17 is "=A65536*$C65535". If
I run it again, the code executes properly and cell E17 gets the
formula "E16*$C$15". Does anyone have any ideas? I've exhausted all
mine, and have concluded it's an Excel bug.


Dave Peterson

FormulaR1C1 problem
 
You have a . in front of that .cells() portion.

What's the "With" statement look like?

And are you sure you know what's in iRow?

wrote:

I have a macro that contains the line:

.Cells(irow + 2, 5).FormulaR1C1 = "=R[-1]C*R[-2]C3"

The first time a worksheet is created and the above code is executed
when irow=15, the formula produced in E17 is "=A65536*$C65535". If
I run it again, the code executes properly and cell E17 gets the
formula "E16*$C$15". Does anyone have any ideas? I've exhausted all
mine, and have concluded it's an Excel bug.


--

Dave Peterson

[email protected]

FormulaR1C1 problem
 
The "with" refers to the worksheet. The macro creates the worksheet
if it does not already exist. I added a watch on cell E17, and could
see that the incorrect formula is produced when the statement is
executed. When the macro completes, I can check the cell, and see
that the incorrect formula is still there. The second time I run the
macro, the watch shows the correct formula for the cell. The row
numbers produced the first time lead me to believe this could be an
overflow condition. But why?


Dave Peterson

FormulaR1C1 problem
 
I've never seen an overflow error that didn't cause the code to stop.

Maybe iRow isn't what you believe to be the first time.

wrote:

The "with" refers to the worksheet. The macro creates the worksheet
if it does not already exist. I added a watch on cell E17, and could
see that the incorrect formula is produced when the statement is
executed. When the macro completes, I can check the cell, and see
that the incorrect formula is still there. The second time I run the
macro, the watch shows the correct formula for the cell. The row
numbers produced the first time lead me to believe this could be an
overflow condition. But why?


--

Dave Peterson

JLGWhiz

FormulaR1C1 problem
 
Going with what Dave said, if your cursor resides on the last row or below
when you start the macro, and you have something like iRow =
ActiveCell.End(xlDown).Row, you are sending the execution to the bottom with
Cells(irow + 2, 5).FormulaR1C1 = "=R[-1]C*R[-2]C3"
You would have to make sure your cursor has some rows with data in them
beneath it to avoid the problem and can do that by adding

Range("A1").Activate

as the first command in the macro.

" wrote:

I have a macro that contains the line:

..Cells(irow + 2, 5).FormulaR1C1 = "=R[-1]C*R[-2]C3"

The first time a worksheet is created and the above code is executed
when irow=15, the formula produced in E17 is "=A65536*$C65535". If
I run it again, the code executes properly and cell E17 gets the
formula "E16*$C$15". Does anyone have any ideas? I've exhausted all
mine, and have concluded it's an Excel bug.



[email protected]

FormulaR1C1 problem
 
Thanks, all, but I don't think that's it. Here's more of the macro
code:

With ThisWorkbook.Worksheets(outname)
irow = 15
For iwp = 0 To 200
' .Cells(irow + 2, 5).FormulaR1C1 = "=R[-1]C*R[-2]C3"
.Cells(irow + 2, 5).Formula = "=e" & irow + 1 & "*$c" &
irow
irow=irow+6
Next iwp
End With

The commented line gives the incorrect formula. The line below it
gives the correct results. As far as I can see, my cursor is never
involved.

On Apr 20, 6:56 pm, JLGWhiz wrote:
Going with what Dave said, if your cursor resides on the last row or below
when you start the macro, and you have something like iRow =
ActiveCell.End(xlDown).Row, you are sending the execution to the bottom with
Cells(irow + 2, 5).FormulaR1C1= "=R[-1]C*R[-2]C3"
You would have to make sure your cursor has some rows with data in them
beneath it to avoid the problem and can do that by adding

Range("A1").Activate

as the first command in the macro.



" wrote:
I have a macro that contains the line:


..Cells(irow + 2, 5).FormulaR1C1= "=R[-1]C*R[-2]C3"


The first time a worksheet is created and the above code is executed
when irow=15, the formula produced in E17 is "=A65536*$C65535". If
I run it again, the code executes properly and cell E17 gets the
formula "E16*$C$15". Does anyone have any ideas? I've exhausted all
mine, and have concluded it's an Excel bug.- Hide quoted text -


- Show quoted text -





All times are GMT +1. The time now is 12:23 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com