在窗体上添加一个名称为Command1的命令按钮,编写如下代码: Private Sub f(ByVal X As Integer) x=x+4 End Sub Private Sub Command1 Click() i=3 Call f(i) If i>4 Then i=i*2 MsgBox i End Sub 运行窗体后,单击命令按钮,则消息框的输出结果为
1
。
1、
【正确答案】
1、正确答案:3
【答案解析】
解析:在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。本题中在定义子过程f的时候用ByVal声明了形参x,说明为传值调用,此时对x的任何更改不会影响调用它的实参i,所以执行Call(f)语句后i的值为3不变。当然也不满足If条件,所以本题结果为3。
提交答案
关闭