ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Trying to evaluate cell referenes in a string (https://www.excelbanter.com/excel-programming/422188-trying-evaluate-cell-referenes-string.html)

JeffC

Trying to evaluate cell referenes in a string
 
I have a formula that takes a few parameters. For one of the string
parameters I want to concatenate values from cells in the spreadsheet
directly in the formula.

For example cell A1 = Bob cell B1 = Smith

In another cell I call my formula =My_formula("Name", A1 & " " & B1).
When I press enter on this, my formula is called and is passed two strings:
param1 = Name and param2 = Bob Jones

This is what I would expect, through Excel, but here is my problem:

I have a button, that when pressed, finds cells that contain My_formula and
gets the pertinent data out of them without executing each individually. It
gathers all of the data to make a batch call to a data store. I am parsing
the string
My_formula("Name", A1 & " " & B1). I can parse it and get the two parameters:
param1 = Name and param2 = A1 & " " B1
Excel did not process this, it is being read as a string, therefore the cell
references are not evaluated. Without parsing this even more, is there a way
to get Excel VBA to take something like A1 & " " B1 and evaluate the cell
references so that it returns Bob Smith ?

Mike H

Trying to evaluate cell referenes in a string
 
Jeff,

I'm struggling to understand where

My_formula

comes into it but if you want to build a string from 2 cells in VB try this

mystring = "Name " & Range("A1") & " " & Range("B1")

Mike

"JeffC" wrote:

I have a formula that takes a few parameters. For one of the string
parameters I want to concatenate values from cells in the spreadsheet
directly in the formula.

For example cell A1 = Bob cell B1 = Smith

In another cell I call my formula =My_formula("Name", A1 & " " & B1).
When I press enter on this, my formula is called and is passed two strings:
param1 = Name and param2 = Bob Jones

This is what I would expect, through Excel, but here is my problem:

I have a button, that when pressed, finds cells that contain My_formula and
gets the pertinent data out of them without executing each individually. It
gathers all of the data to make a batch call to a data store. I am parsing
the string
My_formula("Name", A1 & " " & B1). I can parse it and get the two parameters:
param1 = Name and param2 = A1 & " " B1
Excel did not process this, it is being read as a string, therefore the cell
references are not evaluated. Without parsing this even more, is there a way
to get Excel VBA to take something like A1 & " " B1 and evaluate the cell
references so that it returns Bob Smith ?


JeffC

Trying to evaluate cell referenes in a string
 
My_Formula is a user defined function that can be typed into an Excel cell.
I know that I can append and call the Range function, but I am trying to
figure out how to parse the string passed into the function.

For example

Private Function My_Formula(ByVal param1 As String, ByVal param2) As String
..
..
..
End Function

If I have cells A1 = Bob cell B1 = Smith and then in cell A2 I enter in,

=My_Formula("Name", A1 & " " & B1)

when the function My_Formula gets called, param2 will be the value "Bob
Smith" because Excel is handling the cell references and concatenation.

But now let's say that I'm not going to call My_Formula explicitly, rather
on a button click, I search each cell to see if it contains the string
"=My_Formula(". If it does, I need to parse out the two pieces based on the
"," in the string. When I do this, I have two strings: "Name" and
"A1 & " " & B1" .
I want to be able to turn that literal string into its cell references just
like Excel does.

I hope this makes sense.

"Mike H" wrote:

Jeff,

I'm struggling to understand where

My_formula

comes into it but if you want to build a string from 2 cells in VB try this

mystring = "Name " & Range("A1") & " " & Range("B1")

Mike

"JeffC" wrote:

I have a formula that takes a few parameters. For one of the string
parameters I want to concatenate values from cells in the spreadsheet
directly in the formula.

For example cell A1 = Bob cell B1 = Smith

In another cell I call my formula =My_formula("Name", A1 & " " & B1).
When I press enter on this, my formula is called and is passed two strings:
param1 = Name and param2 = Bob Jones

This is what I would expect, through Excel, but here is my problem:

I have a button, that when pressed, finds cells that contain My_formula and
gets the pertinent data out of them without executing each individually. It
gathers all of the data to make a batch call to a data store. I am parsing
the string
My_formula("Name", A1 & " " & B1). I can parse it and get the two parameters:
param1 = Name and param2 = A1 & " " B1
Excel did not process this, it is being read as a string, therefore the cell
references are not evaluated. Without parsing this even more, is there a way
to get Excel VBA to take something like A1 & " " B1 and evaluate the cell
references so that it returns Bob Smith ?


Rick Rothstein

Trying to evaluate cell referenes in a string
 
I'm not 100% sure I understand your question. Does this do what you want
(assuming the formula is in A3)?

Frmla = Range("A3").Formula
Arg = Application.Evaluate(Trim(Split(Split(Frmla, ",")(1), ")")(0)))

How you get to the actual argument may change depending on the actual
formula that is being parsed.

--
Rick (MVP - Excel)


"JeffC" wrote in message
...
My_Formula is a user defined function that can be typed into an Excel
cell.
I know that I can append and call the Range function, but I am trying to
figure out how to parse the string passed into the function.

For example

Private Function My_Formula(ByVal param1 As String, ByVal param2) As
String
.
.
.
End Function

If I have cells A1 = Bob cell B1 = Smith and then in cell A2 I enter
in,

=My_Formula("Name", A1 & " " & B1)

when the function My_Formula gets called, param2 will be the value "Bob
Smith" because Excel is handling the cell references and concatenation.

But now let's say that I'm not going to call My_Formula explicitly, rather
on a button click, I search each cell to see if it contains the string
"=My_Formula(". If it does, I need to parse out the two pieces based on
the
"," in the string. When I do this, I have two strings: "Name" and
"A1 & " " & B1" .
I want to be able to turn that literal string into its cell references
just
like Excel does.

I hope this makes sense.

"Mike H" wrote:

Jeff,

I'm struggling to understand where

My_formula

comes into it but if you want to build a string from 2 cells in VB try
this

mystring = "Name " & Range("A1") & " " & Range("B1")

Mike

"JeffC" wrote:

I have a formula that takes a few parameters. For one of the string
parameters I want to concatenate values from cells in the spreadsheet
directly in the formula.

For example cell A1 = Bob cell B1 = Smith

In another cell I call my formula =My_formula("Name", A1 & " " & B1).
When I press enter on this, my formula is called and is passed two
strings:
param1 = Name and param2 = Bob Jones

This is what I would expect, through Excel, but here is my problem:

I have a button, that when pressed, finds cells that contain My_formula
and
gets the pertinent data out of them without executing each
individually. It
gathers all of the data to make a batch call to a data store. I am
parsing
the string
My_formula("Name", A1 & " " & B1). I can parse it and get the two
parameters:
param1 = Name and param2 = A1 & " " B1
Excel did not process this, it is being read as a string, therefore the
cell
references are not evaluated. Without parsing this even more, is there
a way
to get Excel VBA to take something like A1 & " " B1 and evaluate the
cell
references so that it returns Bob Smith ?




All times are GMT +1. The time now is 03:32 PM.

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