![]() |
How to do for this kind of formula?
Suppose Cell: A1 = "1+2+3"
and any method to get its result(6) in Cell A2 |
How to do for this kind of formula?
Copy this UDF to a genral module.
Function EvalCell(RefCell As String) Application.Volatile EvalCell = Evaluate(RefCell) End Function =EvalCell(A1) in A2 returns 6 First off.........save a backup of your workbook. If not familiar with VBA and macros, see David McRitchie's site for more on "getting started". http://www.mvps.org/dmcritchie/excel/getstarted.htm In the meantime.......... To create a General Module, hit ALT + F11 to open the Visual Basic Editor. Hit CRTL + R to open Project Explorer. Find your workbook/project and select it. Right-click and InsertModule. Paste the code in there. Save the workbook and hit ALT + Q to return to Excel window. Enter the formula in a helper cell as explained above. Gord Dibben MS Excel MVP On Mon, 11 Jun 2007 20:00:01 -0700, kelvin wrote: Suppose Cell: A1 = "1+2+3" and any method to get its result(6) in Cell A2 |
How to do for this kind of formula?
On Mon, 11 Jun 2007 20:00:01 -0700, kelvin
wrote: Suppose Cell: A1 = "1+2+3" and any method to get its result(6) in Cell A2 You can use a UDF. How involved depends on the variety of what might be in A1. If just quote marks, numbers and operators, then you can use something simple: <alt-F11 opens the VB Editor. Ensure your project is highlighted in the project explorer window, then Insert/Module and paste the code below into the window that opens: ============================= Function Eval(rg) Dim str As String str = Replace(rg.Text, """", "") Eval = Evaluate(str) End Function ============================= A2: =Eval(A1) However, if there might be characters other than quote marks and the various operators, then you need to strip them all out: ========================================== Function Eval(rg) Dim str As String 'ensure contains only numbers and operators Dim oRegex As Object Set oRegex = CreateObject("VBScript.RegExp") With oRegex .Global = True .Pattern = "[^-0-9+/*^\()]" End With str = oRegex.Replace(rg.Text, "") Eval = Evaluate(str) End Function ========================= --ron |
All times are GMT +1. The time now is 05:23 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com