ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   VBA passing variables through a function (https://www.excelbanter.com/excel-discussion-misc-queries/53616-vba-passing-variables-through-function.html)

Jeff

VBA passing variables through a function
 
I have a macro

Sub TestMacro(X,Y)
....calculations based on X and Y values
End Sub

By putting the "X,Y" in the macro, does this make it a function. Because
when I try to look for the macro using the macro button on the toolbar the
function "TestMacro" does not show up. It shows up when I remove the X,Y.
Do you know what has changed? Also i this a good way to program, I want to
be able to input values for X and Y so I thought this would be good since I
wouldn't have to keep changing the "TestMacro".

Sub macro1()
X = 7
Y=5
Call TestMacro(X,Y)
End sub

Bob Phillips

VBA passing variables through a function
 
I is not in the macro list because there is no way that you can pass the
arguments to a macro called from the macro list, Excel just does not provide
it, so it doesn't list.

It isn't a function. A function use Function instead of Sub.

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jeff" wrote in message
...
I have a macro

Sub TestMacro(X,Y)
...calculations based on X and Y values
End Sub

By putting the "X,Y" in the macro, does this make it a function. Because
when I try to look for the macro using the macro button on the toolbar the
function "TestMacro" does not show up. It shows up when I remove the X,Y.
Do you know what has changed? Also i this a good way to program, I want

to
be able to input values for X and Y so I thought this would be good since

I
wouldn't have to keep changing the "TestMacro".

Sub macro1()
X = 7
Y=5
Call TestMacro(X,Y)
End sub




Dave Peterson

VBA passing variables through a function
 
I used this subroutine.

Option Explicit
Sub TestMacro(X As Long, Y As Long)
MsgBox X + Y
End Sub

In excel, I hit tools|macro|macros and I typed:

'testmacro 3,5'

And I saw a message box with 8 in it.

But I think you may want to just ask for the values...

Option Explicit
Sub TestMacro()

Dim X As Double
Dim Y As Double

X = Application.InputBox("Please enter 1st number", Type:=1)
Y = Application.InputBox("please enter 2nd nubmer", Type:=1)

MsgBox X + Y

End Sub

You could also use the builtin Inputbox to get the values, too.

And once you decide that you don't want to go through 45 inputboxes, you may
want to make a userform to collect the information.

Debra Dalgleish has some get started instructions at:
http://contextures.com/xlUserForm01.html

Jeff wrote:

I have a macro

Sub TestMacro(X,Y)
...calculations based on X and Y values
End Sub

By putting the "X,Y" in the macro, does this make it a function. Because
when I try to look for the macro using the macro button on the toolbar the
function "TestMacro" does not show up. It shows up when I remove the X,Y.
Do you know what has changed? Also i this a good way to program, I want to
be able to input values for X and Y so I thought this would be good since I
wouldn't have to keep changing the "TestMacro".

Sub macro1()
X = 7
Y=5
Call TestMacro(X,Y)
End sub


--

Dave Peterson


All times are GMT +1. The time now is 06:48 AM.

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