ByVal

wxue

New Member
Joined
May 13, 2008
Messages
35
I find online it said ByVal - the value is passed. what does that mean?
 

Excel Facts

Spell Check in Excel
Press F7 to start spell check in Excel. Be careful, by default, Excel does not check Capitalized Werds (whoops)
There are two ways to pass arguments to Subs or Functions.
ByRef passes the address of the argument. Changing the subs argument does change the value of the argument in the outer sub.

ByVal creates a new argument and sets the value of that argument to equal the argument in the calling statement. Actions in the subordinate routine do not affect the value of the argument of the calling statement.

This example shows what I mean.
Code:
Sub test()
Dim myNumber As Long

   myNumber = 1
   MsgBox "myNumber = " & myNumber
   Call increaseByRef(myNumber)
   MsgBox "myNumber = " & myNumber

   myNumber = 1
   MsgBox "myNumber = " & myNumber
   Call increaseByVal(myNumber)
   MsgBox "myNumber = " & myNumber
End Sub

Sub increaseByRef(ByRef inNumber As Long)
   inNumber = inNumber + 1
   MsgBox "increased to " & inNumber
End Sub

Sub increaseByVal(ByVal inNumber As Long)
   inNumber = inNumber + 1
   MsgBox "increased to " & inNumber
End Sub
Unless specified, Subs pass arguments ByRef and Functions' arguments are passed ByVal.

The VB Editor help system has more info.
 
Last edited:
Upvote 0

Forum statistics

Threads
1,214,621
Messages
6,120,568
Members
448,972
Latest member
Shantanu2024

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top