小兔网

您可以通过引用将参数传递给过程(函数或子函数)默认情况下,Excel VBA通过引用传递参数。与往常一样,我们将使用一个简单的示例来使情况更清楚。

在您的工作表上放置一个命令按钮,并添加以下代码行:

昏暗 x 作为 整数
x = 10

MsgBox Triple(x)
MsgBox x

该代码调用函数Triple。这是我们感兴趣的第二个MsgBox的结果。需要将功能放入模块中。

1.打开Visual Basic编辑器,然后单击“插入”,“模块”。

2.添加以下代码行:

函数 Triple(ByRef x As IntegerAs Integer

x = x * 3
Triple = x

End Function

单击工作表上的命令按钮时的结果:

ByRef结果

ByRef结果

3.用ByVal替换ByRef。

函数 Triple(ByVal x As IntegerAs Integer

x = x * 3
Triple = x

End Function

单击工作表上的命令按钮时的结果:

ByVal结果

ByVal结果

说明:通过引用传递参数时,我们引用的是原始值。x的值(原始值)在函数中更改。结果,第二个MsgBox显示值为30。按值传递参数时,我们会将副本传递给函数。原始值不变。结果,第二个MsgBox显示的值为10(原始值)。