Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
Ed Ed is offline
external usenet poster
 
Posts: 399
Default Brain lock: using array formula within VBA?

I'm just getting my feet wet in using array formulas. I'm beginning to get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA. But
somehow it's slipping past me how to use an array formula entirely within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives an
array formula for determining if a range contains a particular value. In
his example, a single cell is named "TheName", and a 5-column array of names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Brain lock: using array formula within VBA?

Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message ...
I'm just getting my feet wet in using array formulas. I'm beginning to get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA. But
somehow it's slipping past me how to use an array formula entirely within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives an
array formula for determining if a range contains a particular value. In
his example, a single cell is named "TheName", and a 5-column array of names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Brain lock: using array formula within VBA?

Dim x, arr1

x = "TheName"
arr1 = "NameList"
ActiveCell.FormulaArray = "=IF(OR(" & x & "=" & arr1 &
"),""Found"",""Not Found"")"


although you only have a single test so I do not know why there is an OR in
there

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"Ed" wrote in message
...
I'm just getting my feet wet in using array formulas. I'm beginning to

get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA. But
somehow it's slipping past me how to use an array formula entirely within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives

an
array formula for determining if a range contains a particular value. In
his example, a single cell is named "TheName", and a 5-column array of

names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not

want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed




  #4   Report Post  
Posted to microsoft.public.excel.programming
Ed Ed is offline
external usenet poster
 
Posts: 399
Default Brain lock: using array formula within VBA?

What I get from your response, Bernie, is a very useful piece of code (Thank
You!!) and the basic premise that there is no direct translation of an array
formula into VBA code? Instead, you must dissect the array formula and work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
I'm just getting my feet wet in using array formulas. I'm beginning to

get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives

an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array of

names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not

want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Brain lock: using array formula within VBA?

Ed,

The logic is usually different when using VBA. You could write the array formula to a cell and
evaluate it there, capturing the value by reading the cell value, but it is better, IMO, to use the
simplest method depending on where you are, and that is the MATCH solution that I gave. For a 1
dimensional array of names, I'm sure that I would've used the MATCH solution on the worksheet as
well:

=IF(ISERROR(MATCH(TheName,NameList,False)),"Not Found", "Found")

Which wouldn't work if your 5 column array of names was also multirow.

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message ...
What I get from your response, Bernie, is a very useful piece of code (Thank
You!!) and the basic premise that there is no direct translation of an array
formula into VBA code? Instead, you must dissect the array formula and work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
I'm just getting my feet wet in using array formulas. I'm beginning to

get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives

an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array of

names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not

want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed










  #6   Report Post  
Posted to microsoft.public.excel.programming
Ed Ed is offline
external usenet poster
 
Posts: 399
Default Brain lock: using array formula within VBA?

Which wouldn't work if your 5 column array of names was also multirow
Oh, yes - sorry! In the book's example, the array was 10 rows by 5 cols.

You could write the array formula to a cell and
evaluate it there, capturing the value by reading the cell value, but it

is better, IMO, to use the
simplest method depending on where you are

I had thought about writing the formula to a cell. But it introduced another
element. If you're processing a large array, writing every value to check
into a cell, recalculating the formula, and reading the answer back into
code could become a real time factor. I knew there was a way to evaluate
basic worksheet formulas in VBA code; I was hoping the same thing could be
done for array formulas.

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

The logic is usually different when using VBA. You could write the array

formula to a cell and
evaluate it there, capturing the value by reading the cell value, but it

is better, IMO, to use the
simplest method depending on where you are, and that is the MATCH solution

that I gave. For a 1
dimensional array of names, I'm sure that I would've used the MATCH

solution on the worksheet as
well:

=IF(ISERROR(MATCH(TheName,NameList,False)),"Not Found", "Found")

Which wouldn't work if your 5 column array of names was also multirow.

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
What I get from your response, Bernie, is a very useful piece of code

(Thank
You!!) and the basic premise that there is no direct translation of an

array
formula into VBA code? Instead, you must dissect the array formula and

work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
I'm just getting my feet wet in using array formulas. I'm beginning

to
get
a glimpse of their usefulness. Unfortunately, I work almost

exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed

(I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he

gives
an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array

of
names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName

is
likely to be a variable "x" and NameList an array "arr1". And I do

not
want
to display text in a cell, but do this if true, do that if false. Am

I
barking up the wrong tree on this? Or is there just a simple thing

I'm
missing?

Ed










  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Brain lock: using array formula within VBA?

Ed,

Actually, if you have the array formula as a string (or as a string that you can build), you can use
the Evaluate method:

MsgBox Evaluate("=IF(OR(TheName=NameList), ""Found"", ""Not Found"")")

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message ...
What I get from your response, Bernie, is a very useful piece of code (Thank
You!!) and the basic premise that there is no direct translation of an array
formula into VBA code? Instead, you must dissect the array formula and work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
I'm just getting my feet wet in using array formulas. I'm beginning to

get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives

an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array of

names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not

want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed








  #8   Report Post  
Posted to microsoft.public.excel.programming
Ed Ed is offline
external usenet poster
 
Posts: 399
Default Brain lock: using array formula within VBA?

Thanks for the reply, Bob.

although you only have a single test so I do not know why there is an OR

in
there

Ask John!! <g Maybe because arr1 is really not only 5 columns, but 10
rows by 5 columns, and I goofed in giving that info?

Actually, what I had more in mind was a way to use the array formula and
it's result entirely within VBA without having to write anything into a
cell.

Ed

"Bob Phillips" wrote in message
...
Dim x, arr1

x = "TheName"
arr1 = "NameList"
ActiveCell.FormulaArray = "=IF(OR(" & x & "=" & arr1 &
"),""Found"",""Not Found"")"


although you only have a single test so I do not know why there is an OR

in
there

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"Ed" wrote in message
...
I'm just getting my feet wet in using array formulas. I'm beginning to

get
a glimpse of their usefulness. Unfortunately, I work almost exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed (I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he gives

an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array of

names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName is
likely to be a variable "x" and NameList an array "arr1". And I do not

want
to display text in a cell, but do this if true, do that if false. Am I
barking up the wrong tree on this? Or is there just a simple thing I'm
missing?

Ed






  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Brain lock: using array formula within VBA?

Ed,

Actually, if you have the array formula as a string (or as a string that you can build), you can use
the Evaluate method:

MsgBox Evaluate("=IF(OR(TheName=NameList), ""Found"", ""Not Found"")")

Still, I would use this for the multi-row multi-column list, since I hate having to build workable
formula strings:

MsgBox IIf(Range("NameList").Find(Range("TheName").Value, _
lookAt:=xlWhole) Is Nothing, "Not Found", "Found")

There's usually about a hundred different ways that you can do the same thing in VBA. It's often a
matter of style...

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message ...
Which wouldn't work if your 5 column array of names was also multirow

Oh, yes - sorry! In the book's example, the array was 10 rows by 5 cols.

You could write the array formula to a cell and
evaluate it there, capturing the value by reading the cell value, but it

is better, IMO, to use the
simplest method depending on where you are

I had thought about writing the formula to a cell. But it introduced another
element. If you're processing a large array, writing every value to check
into a cell, recalculating the formula, and reading the answer back into
code could become a real time factor. I knew there was a way to evaluate
basic worksheet formulas in VBA code; I was hoping the same thing could be
done for array formulas.

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

The logic is usually different when using VBA. You could write the array

formula to a cell and
evaluate it there, capturing the value by reading the cell value, but it

is better, IMO, to use the
simplest method depending on where you are, and that is the MATCH solution

that I gave. For a 1
dimensional array of names, I'm sure that I would've used the MATCH

solution on the worksheet as
well:

=IF(ISERROR(MATCH(TheName,NameList,False)),"Not Found", "Found")

Which wouldn't work if your 5 column array of names was also multirow.

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
What I get from your response, Bernie, is a very useful piece of code

(Thank
You!!) and the basic premise that there is no direct translation of an

array
formula into VBA code? Instead, you must dissect the array formula and

work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message
...
I'm just getting my feet wet in using array formulas. I'm beginning

to
get
a glimpse of their usefulness. Unfortunately, I work almost

exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed

(I
think!!) how to enter an array formula into the worksheet using VBA.
But
somehow it's slipping past me how to use an array formula entirely
within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he

gives
an
array formula for determining if a range contains a particular value.
In
his example, a single cell is named "TheName", and a 5-column array

of
names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName

is
likely to be a variable "x" and NameList an array "arr1". And I do

not
want
to display text in a cell, but do this if true, do that if false. Am

I
barking up the wrong tree on this? Or is there just a simple thing

I'm
missing?

Ed












  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Brain lock: using array formula within VBA?

Yes I see that now from your discussion with Bernie. At least you have
another tool in the armoury now <G

Bob

"Ed" wrote in message
...
Thanks for the reply, Bob.

although you only have a single test so I do not know why there is an OR

in
there

Ask John!! <g Maybe because arr1 is really not only 5 columns, but 10
rows by 5 columns, and I goofed in giving that info?

Actually, what I had more in mind was a way to use the array formula and
it's result entirely within VBA without having to write anything into a
cell.

Ed

"Bob Phillips" wrote in message
...
Dim x, arr1

x = "TheName"
arr1 = "NameList"
ActiveCell.FormulaArray = "=IF(OR(" & x & "=" & arr1 &
"),""Found"",""Not Found"")"


although you only have a single test so I do not know why there is an OR

in
there

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"Ed" wrote in message
...
I'm just getting my feet wet in using array formulas. I'm beginning

to
get
a glimpse of their usefulness. Unfortunately, I work almost

exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed

(I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he

gives
an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array of

names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName

is
likely to be a variable "x" and NameList an array "arr1". And I do

not
want
to display text in a cell, but do this if true, do that if false. Am

I
barking up the wrong tree on this? Or is there just a simple thing

I'm
missing?

Ed










  #11   Report Post  
Posted to microsoft.public.excel.programming
Ed Ed is offline
external usenet poster
 
Posts: 399
Default Brain lock: using array formula within VBA?

Ah, the missing bit! Tom Ogilvy had given me the Evaluate method in an
earlier post, but I didn't understand about putting the entire formula in a
string. This can open up a lot of room to play!

Once again, Bernie, I'm grateful for your help.
Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

Actually, if you have the array formula as a string (or as a string that

you can build), you can use
the Evaluate method:

MsgBox Evaluate("=IF(OR(TheName=NameList), ""Found"", ""Not Found"")")

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
What I get from your response, Bernie, is a very useful piece of code

(Thank
You!!) and the basic premise that there is no direct translation of an

array
formula into VBA code? Instead, you must dissect the array formula and

work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
I'm just getting my feet wet in using array formulas. I'm beginning

to
get
a glimpse of their usefulness. Unfortunately, I work almost

exclusively
from within VBA, vice entering a formula on the worksheet. I grabbed

(I
think!!) how to enter an array formula into the worksheet using VBA.

But
somehow it's slipping past me how to use an array formula entirely

within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he

gives
an
array formula for determining if a range contains a particular value.

In
his example, a single cell is named "TheName", and a 5-column array

of
names
is named "NameList". His array formula is {=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then TheName

is
likely to be a variable "x" and NameList an array "arr1". And I do

not
want
to display text in a cell, but do this if true, do that if false. Am

I
barking up the wrong tree on this? Or is there just a simple thing

I'm
missing?

Ed










  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Brain lock: using array formula within VBA?

If you are going to use Evaluate a lot, best to qualify it with the
worksheet that the evaluation is being acted upon, avoids any potential
problems in addressing the activesheet.

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"Ed" wrote in message
...
Ah, the missing bit! Tom Ogilvy had given me the Evaluate method in an
earlier post, but I didn't understand about putting the entire formula in

a
string. This can open up a lot of room to play!

Once again, Bernie, I'm grateful for your help.
Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

Actually, if you have the array formula as a string (or as a string that

you can build), you can use
the Evaluate method:

MsgBox Evaluate("=IF(OR(TheName=NameList), ""Found"", ""Not Found"")")

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
What I get from your response, Bernie, is a very useful piece of code

(Thank
You!!) and the basic premise that there is no direct translation of an

array
formula into VBA code? Instead, you must dissect the array formula

and
work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message
...
I'm just getting my feet wet in using array formulas. I'm

beginning
to
get
a glimpse of their usefulness. Unfortunately, I work almost

exclusively
from within VBA, vice entering a formula on the worksheet. I

grabbed
(I
think!!) how to enter an array formula into the worksheet using

VBA.
But
somehow it's slipping past me how to use an array formula entirely
within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas", he

gives
an
array formula for determining if a range contains a particular

value.
In
his example, a single cell is named "TheName", and a 5-column array

of
names
is named "NameList". His array formula is

{=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then

TheName
is
likely to be a variable "x" and NameList an array "arr1". And I do

not
want
to display text in a cell, but do this if true, do that if false.

Am
I
barking up the wrong tree on this? Or is there just a simple thing

I'm
missing?

Ed












  #13   Report Post  
Posted to microsoft.public.excel.programming
Ed Ed is offline
external usenet poster
 
Posts: 399
Default Brain lock: using array formula within VBA?

Thank you for that advice, Bob. I'll remember that.
Ed

"Bob Phillips" wrote in message
...
If you are going to use Evaluate a lot, best to qualify it with the
worksheet that the evaluation is being acted upon, avoids any potential
problems in addressing the activesheet.

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"Ed" wrote in message
...
Ah, the missing bit! Tom Ogilvy had given me the Evaluate method in an
earlier post, but I didn't understand about putting the entire formula

in
a
string. This can open up a lot of room to play!

Once again, Bernie, I'm grateful for your help.
Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

Actually, if you have the array formula as a string (or as a string

that
you can build), you can use
the Evaluate method:

MsgBox Evaluate("=IF(OR(TheName=NameList), ""Found"", ""Not Found"")")

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message

...
What I get from your response, Bernie, is a very useful piece of

code
(Thank
You!!) and the basic premise that there is no direct translation of

an
array
formula into VBA code? Instead, you must dissect the array formula

and
work
out the matching functions and such?

Ed

"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Ed,

For example:

Dim x As String
Dim arr1 As Variant
Dim IsThere As Boolean

arr1 = Array("Test1", "Test2", "Test3")

x = "Test2"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

x = "Test4"
IsThere = Not IsError(Application.Match(x, arr1, False))
MsgBox "Match of " & x & " is " & IsThere

HTH,
Bernie
MS Excel MVP


"Ed" wrote in message
...
I'm just getting my feet wet in using array formulas. I'm

beginning
to
get
a glimpse of their usefulness. Unfortunately, I work almost

exclusively
from within VBA, vice entering a formula on the worksheet. I

grabbed
(I
think!!) how to enter an array formula into the worksheet using

VBA.
But
somehow it's slipping past me how to use an array formula

entirely
within
VBA code.

For example, from John Walkenbach's book "Excel 2000 Formulas",

he
gives
an
array formula for determining if a range contains a particular

value.
In
his example, a single cell is named "TheName", and a 5-column

array
of
names
is named "NameList". His array formula is

{=IF(OR(TheName=NameList),
"Found", "Not Found")}.

If I want to do something like this entirely within VBA, then

TheName
is
likely to be a variable "x" and NameList an array "arr1". And I

do
not
want
to display text in a cell, but do this if true, do that if false.

Am
I
barking up the wrong tree on this? Or is there just a simple

thing
I'm
missing?

Ed














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
A formula answer that I just can't wrap my brain around! Dan the Man[_2_] Excel Discussion (Misc queries) 10 August 24th 08 06:54 PM
Brain Clog! Help with formula, please JoeSpareBedroom Excel Discussion (Misc queries) 7 July 19th 06 01:15 PM
Formula Problem - Get your brain around this.. Dominators Puzzle Excel Discussion (Misc queries) 0 February 10th 06 07:21 PM
Tricky array formula issue - Using array formula on one cell, then autofilling down a range aspenbordr Excel Programming 0 July 27th 05 03:59 PM
Use Your Brain Pyball[_7_] Excel Programming 2 December 21st 03 01:08 AM


All times are GMT +1. The time now is 07:25 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"