![]() |
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. |
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. |
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