ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Functions that return multiple calculated values (https://www.excelbanter.com/excel-programming/292744-functions-return-multiple-calculated-values.html)

Tom Kreutz

Functions that return multiple calculated values
 
I'm trying to write a function that will return multiple calculated
values. One way is to use the Array() function, which creates a
variant array, such as:

Function test()
Dim y As Variant
y = Array("a", "b")
test = y
End Function

However, I want to be able to output two CALCULATED values for y(1)
and y(2). If I try to do this in the code above, e.g. if ... then
y(1)=26, I get an error.

Am I missing somthing obvious?

Thanks in advance for any good ideas.

Tom Kreutz

Bob Phillips[_6_]

Functions that return multiple calculated values
 
Tom,

This works okay for me

Function test()
Dim y As Variant
ReDim y(1)
If Day(Date) 20 Then
y(1) = 1
Else
y(1) = 0
End If
test = y
End Function

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Tom Kreutz" wrote in message
m...
I'm trying to write a function that will return multiple calculated
values. One way is to use the Array() function, which creates a
variant array, such as:

Function test()
Dim y As Variant
y = Array("a", "b")
test = y
End Function

However, I want to be able to output two CALCULATED values for y(1)
and y(2). If I try to do this in the code above, e.g. if ... then
y(1)=26, I get an error.

Am I missing somthing obvious?

Thanks in advance for any good ideas.

Tom Kreutz




Tom Kreutz

Functions that return multiple calculated values
 
Bob,

Thanks for your note. I want the function to return TWO calculated
results. John Walkenbach's book "Excel 2000 Power Programming with
VBA" says that that can be done by returning a variant array (as
opposed to an array of variants). Your note got me to trying the
simpler idea of just returning a standard array, which works fine!!
For example:

Function test()
Dim y(2) As Integer
y(0) = 6
y(1) = 7
test = y
End Function

This returns the values 6 and 7 in two different cells, as I wished.

Thanks for your help.

Tom

"Bob Phillips" wrote in message ...
Tom,

This works okay for me

Function test()
Dim y As Variant
ReDim y(1)
If Day(Date) 20 Then
y(1) = 1
Else
y(1) = 0
End If
test = y
End Function

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Tom Kreutz" wrote in message
m...
I'm trying to write a function that will return multiple calculated
values. One way is to use the Array() function, which creates a
variant array, such as:

Function test()
Dim y As Variant
y = Array("a", "b")
test = y
End Function

However, I want to be able to output two CALCULATED values for y(1)
and y(2). If I try to do this in the code above, e.g. if ... then
y(1)=26, I get an error.

Am I missing somthing obvious?

Thanks in advance for any good ideas.

Tom Kreutz


Alan Beban[_4_]

Functions that return multiple calculated values
 
Tom,

You might want to substitute Dim y(1) for Dim y(2). As it is, y returns
an array with the elements 6,7,0; i.e., y(0)=6, y(1)=7 and y(2)=0.

Alan Beban

Tom Kreutz wrote:
Bob,

Thanks for your note. I want the function to return TWO calculated
results. John Walkenbach's book "Excel 2000 Power Programming with
VBA" says that that can be done by returning a variant array (as
opposed to an array of variants). Your note got me to trying the
simpler idea of just returning a standard array, which works fine!!
For example:

Function test()
Dim y(2) As Integer
y(0) = 6
y(1) = 7
test = y
End Function

This returns the values 6 and 7 in two different cells, as I wished.

Thanks for your help.

Tom

"Bob Phillips" wrote in message ...

Tom,

This works okay for me

Function test()
Dim y As Variant
ReDim y(1)
If Day(Date) 20 Then
y(1) = 1
Else
y(1) = 0
End If
test = y
End Function

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Tom Kreutz" wrote in message
. com...

I'm trying to write a function that will return multiple calculated
values. One way is to use the Array() function, which creates a
variant array, such as:

Function test()
Dim y As Variant
y = Array("a", "b")
test = y
End Function

However, I want to be able to output two CALCULATED values for y(1)
and y(2). If I try to do this in the code above, e.g. if ... then
y(1)=26, I get an error.

Am I missing somthing obvious?

Thanks in advance for any good ideas.

Tom Kreutz





All times are GMT +1. The time now is 01:52 PM.

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