Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Protecting values of variables
Hi all! I need to know of a way to protect the values of variables as they
are passed between function to function. I didn't notice this at first, but it explains why my final answer was getting a number not physically posible. Here's some code to help explain... Sub Macro2() a = 1 b = 2 c = 3 dummy = Ben(a, b, c) End Sub Function Ben(x, y, z) x = y + z Ben = x End Function Note, that at the "end sub" line, the value of "a" is now 5 instead of 2... thanks for your help! |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Protecting values of variables
Use byVal in the function. I believe the default passing mechanism is
byRef. When you use byVal, the value is copied to working storage separate from that used in Macro2(), and so should protect Macro2()'s working storage. Function Ben(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) As Integer "Ben H" wrote in message ... Hi all! I need to know of a way to protect the values of variables as they are passed between function to function. I didn't notice this at first, but it explains why my final answer was getting a number not physically posible. Here's some code to help explain... Sub Macro2() a = 1 b = 2 c = 3 dummy = Ben(a, b, c) End Sub Function Ben(x, y, z) x = y + z Ben = x End Function Note, that at the "end sub" line, the value of "a" is now 5 instead of 2... thanks for your help! |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Protecting values of variables
Unless you specify ByVal, the default ByRef is assumed & changes stick. See
below: Function Ben(byval x, byval y, byval z) x = y + z Ben = x End Function "Ben H" wrote: Hi all! I need to know of a way to protect the values of variables as they are passed between function to function. I didn't notice this at first, but it explains why my final answer was getting a number not physically posible. Here's some code to help explain... Sub Macro2() a = 1 b = 2 c = 3 dummy = Ben(a, b, c) End Sub Function Ben(x, y, z) x = y + z Ben = x End Function Note, that at the "end sub" line, the value of "a" is now 5 instead of 2... thanks for your help! |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Split values in cells to variables | Excel Discussion (Misc queries) | |||
VBA variables retaining their values | Excel Discussion (Misc queries) | |||
how to look up values with two independent variables | Excel Worksheet Functions | |||
Changing the values of variables | Excel Programming | |||
can variables pass values | Excel Programming |