![]() |
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! |
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! |
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! |
All times are GMT +1. The time now is 03:43 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com