Solved

Placing formula in Excel sheet from VFP

Posted on 2011-03-16
6
1,669 Views
Last Modified: 2012-05-11
Using the following code from VFP:

oExcel.Cells(6,14).FormulaR1C1 = "=AVERAGE(B6:M6)"

I get superfluous quotes put in to the formula which gives me an #NAME error in Excel. The formula gets received like this:

=AVERAGE('B6':'M6')

How can I prevent this?
0
Comment
Question by:AndrewJen
6 Comments
 
LVL 2

Expert Comment

by:Gary2Seven
ID: 35148130

I have always used ;

oExcel.Range("A1").Formula="=AVERAGE(B6:M6)"

and not had any issues.
0
 
LVL 12

Expert Comment

by:jrbbldr
ID: 35148222
This is just a guess, but every time I get an Excel error:   #NAME    it has been due to the contents of the cells themselves upon which the formula operates.

Try going into the Excel file manually (without any VFP involvement) and putting the formula into the desired cells and see what the result is.  

If you still get the error displayed, then it is the result of the cell contents that are being calculated - perhaps the Cell Type or the value within the cell(s).

Good Luck
0
 
LVL 27

Accepted Solution

by:
CaptainCyril earned 500 total points
ID: 35150084
You have to use relative addressing:

xlapp = CREATEOBJECT("Excel.Application")
xlapp.Visible = .T.
xlwb = xlapp.Workbooks.Add
xlsheet = xlwb.Sheets(1)
FOR i = 1 TO 10
	xlsheet.Cells(i,1).Value = i
ENDFOR
xlsheet.Cells(11,1).FormulaR1C1 = "=AVERAGE(R[-10]C:R[-1]C)"

Open in new window

0
Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

 
LVL 3

Author Closing Comment

by:AndrewJen
ID: 35155580
Perfect, thank you!

Where might I find some documentation on this?
0
 
LVL 27

Expert Comment

by:CaptainCyril
ID: 35155654
You're welcome!

I get it from Excel's Help. Sometimes I record macros from Excel and see how it works.

If I get lucky, I might find a good website MSDN or some other forum that describes the things I am looking for.

When you get stuck, EE is your best pal! You can ask the question in FoxPro and Excel sections.
0
 
LVL 12

Expert Comment

by:jrbbldr
ID: 35155760
"Sometimes I record macros from Excel and see how it works"

If I don't know how to do an Excel Automation, I ALWAYS do the work manually in Excel while recording the operations as a Macro.   Then, when done, examine the Macro to see how Excel did it.    That then 'tells' me what to do and how to do it in my VFP Automation.

AndrewJen - glad the Captain got you what you needed.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question