在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序: Private Sub s(ByVal p As Integer) p=p*2 End Sub Private Sub Command1_click()

admin2009-03-15  24

问题 在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:
   Private Sub s(ByVal p As Integer)
      p=p*2
   End Sub
   Private Sub Command1_click()
      Dim i As Integer
      i=3
      Call s(i)
      If i>4 Then i=i^2
      MsgBox i
   End Sub
   窗体打开运行后,单击命令按钮,则消息框的输出结果为【  】。

选项

答案3

解析 由于VBA中,传值调用(ByVal选项)为“单向”作用形式即过程调用只是相应位置实参的值“单向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。此题中:形参p被说明为ByRef传值形式的整型量,当运行Command1 Click()过程,并调用s()函数,实参i传送其值给形参p,p发生变化p=p*2=3*2=6。但因为使用的是ByVal“单向”传值形式,实参i的的值不发生变化, iF句为假,执行MsgBox i语句后输出3。
转载请注明原文地址:https://kaotiyun.com/show/pN5p777K
0

最新回复(0)