ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   VBA - Function Output (https://www.excelbanter.com/excel-discussion-misc-queries/137279-vba-function-output.html)

Jeff

VBA - Function Output
 
Hi,

I posted this question earlier but I think I was unclear.

I am trying to use a function (maybe it is technically a macro - I dont
know)- here is my problem.

The function has 3 "input" variables declared as doubles, and based on these
values the function assigns values to 3 output "variables". The output
variables are declared inside the function - so I just want to get them -
without declaring global variables.

So in the code below I want to get variables "var1, var2, var3" - since they
are the result of the TestFunction.


Sub MainTest()
Dim get1 As Double
Dim get2 As Double
Dim get3 As Double

Call TestFunct1(1, 2, 3)

End Sub

Sub TestFunct1(X, Y, Z)
Dim var1 As Double
Dim var2 As Double
Dim var3 As Double

var1 = 1 * X
var2 = 2 * Y
var3 = 3 * Z

End Sub

Thanks for your help.



Toppers

VBA - Function Output
 
As my reply to your first posting:

Declare Var1 etc BEFORE Sub MainTest

Dim var1 As Double
Dim var2 As Double
Dim var3 As Double


Sub MainTest()

Call TestFunct1(1, 2, 3)
Debug.Print var1 & " " & var2 & " " & var3

End Sub

Sub TestFunct1(X, Y, Z)

var1 = 1 * X
var2 = 2 * Y
var3 = 3 * Z

End Sub


"Jeff" wrote:

Hi,

I posted this question earlier but I think I was unclear.

I am trying to use a function (maybe it is technically a macro - I dont
know)- here is my problem.

The function has 3 "input" variables declared as doubles, and based on these
values the function assigns values to 3 output "variables". The output
variables are declared inside the function - so I just want to get them -
without declaring global variables.

So in the code below I want to get variables "var1, var2, var3" - since they
are the result of the TestFunction.


Sub MainTest()
Dim get1 As Double
Dim get2 As Double
Dim get3 As Double

Call TestFunct1(1, 2, 3)

End Sub

Sub TestFunct1(X, Y, Z)
Dim var1 As Double
Dim var2 As Double
Dim var3 As Double

var1 = 1 * X
var2 = 2 * Y
var3 = 3 * Z

End Sub

Thanks for your help.



Dave Peterson

VBA - Function Output
 
How about something like:

Option Explicit
Sub MainTest()
Dim get1 As Double
Dim get2 As Double
Dim get3 As Double

get1 = 1
get2 = 2
get3 = 3

Call TestFunct1(get1, get2, get3)

MsgBox get1 & vbLf & get2 & vbLf & get3
End Sub
Sub TestFunct1(ByRef x As Double, ByRef Y As Double, ByRef Z As Double)
x = 1 * x
Y = 2 * Y
Z = 3 * Z
End Sub

(ByRef is VBA's default and isn't required.)



Jeff wrote:

Hi,

I posted this question earlier but I think I was unclear.

I am trying to use a function (maybe it is technically a macro - I dont
know)- here is my problem.

The function has 3 "input" variables declared as doubles, and based on these
values the function assigns values to 3 output "variables". The output
variables are declared inside the function - so I just want to get them -
without declaring global variables.

So in the code below I want to get variables "var1, var2, var3" - since they
are the result of the TestFunction.

Sub MainTest()
Dim get1 As Double
Dim get2 As Double
Dim get3 As Double

Call TestFunct1(1, 2, 3)

End Sub

Sub TestFunct1(X, Y, Z)
Dim var1 As Double
Dim var2 As Double
Dim var3 As Double

var1 = 1 * X
var2 = 2 * Y
var3 = 3 * Z

End Sub

Thanks for your help.


--

Dave Peterson


All times are GMT +1. The time now is 08:09 PM.

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