填空题
在窗体中添加一个名称为 Command1 的命令按钮,然后编写如下程序:
Private Sub s(ByVal p As Integer)
p = p * 2
End Sub
Private Sub Command1_Click1 Dim i As Integer
i = 3
Call s(i)
If i > 4 Then i = i ^ 2
MsgBox i
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果为 2 。
1、
【正确答案】
1、3
【答案解析】由于VBA中,传值调用(ByVal选项)为“单向”作用形式即过程调用只是相应位置实参的值“单 向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的 值。此题中:形参p被说明为ByRef传值形式的整型量,当运行Command1_Click---|||________|||---过程,并调用s---|||________|||---函数,实 参i传送其值给形参p,p发生变化p=p*2=3*2=6。但因为使用的是ByVal “单向”传值形式,实参i的的值不 发生变化,if语句为假,执行MsgBox i 语句后输出3。