Custom functions using arguments with same name

G

Guest

I have written some functions in VBA to calculate profit margin, cost and
suggested retail price. they are simple in that the RETAILPRICE function has
two arguments, COST and MARGIN. i am also using an argument named COST in
the PROFITMARGIN function. how can i get VBA to recognize these as seperate
variables? do i have to put them in separate modules? or is there a certain
way i need to declare the variables? thank you.
 
T

Tom Ogilvy

Public Function RetailPrice(arg1)
Dim Cost as Double
end Function

Public function ProfitMargin(arg1)
Dim Cost as Double
End Function

the value of cost in either function is unrelated to the value of cost in
the other function. The same for Arg1
 
G

Guest

Private Sub RetailPrice(Cost As Double, Margin As Double)
End Sub
Private Sub ProfitMargin(Cost As Double)
End Sub

In these two subs the args "Cost" are local variables. They are visible
only to the code within the routines. You don't have to use the same
variable name when you call the routines. You can call them like this:

Dim RetailCost As Double
Dim MarginCost As Double
Dim Margin As Double

Call RetailPrice(RetailCost, Margin)
Call ProfitMargin(MarginCost)

....and two different values will be passed into the two routines as "Cost"
when they arrive. Clear as mud?
 
G

Guest

what happens if i want to use something called RetailPrice as an argument in
another function.
 
T

Tom Ogilvy

You mean you want to have function named retailprice and a variable named
retailprice. Without testing, I suspect you will get an error in the place
where you use it as a variable if the function definition is within scope.
Sounds like a bad idea to me. Why not

fncRetailprice
varRetailprice

or something like that.
 
G

Guest

that's a better idea, i'll try it thanks.

Tom Ogilvy said:
You mean you want to have function named retailprice and a variable named
retailprice. Without testing, I suspect you will get an error in the place
where you use it as a variable if the function definition is within scope.
Sounds like a bad idea to me. Why not

fncRetailprice
varRetailprice

or something like that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top