34. 在窗体中有一个文本框Text1,编写事件代码如下: Private Sub Form_Click() X=val(InputBox("输入X的值")) Y=1 If X<0 Then Y=2 ElseIf X<2 Then Y=3 Else Y=4 End If Text 1.Value=Y End Sub 打开窗体运行后,在输入框中输入整数2,文本框Text1中输出的结果是______。
[解析] 在数组中,元素个数=(下标上限-下标下限+1)。因此,本题二维数组B(3 to 7,4)的元素个数=(7-3+1)*(4-0+1)=5*5=25。
36. 在窗体中有一个命令按钮Command1,对应的事件代码如下: Private Sub Command1_Click() Dim a As Integer Dim b As Integer a=16:b=66 Call Proc(a,b) Debug.Print a;b End Sub Public Sub Proc(ByVal x As Integer, ByRef y As Integer) x=x Mod 10 y=y Mod 10 End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是______。
A.6和66
B.16和66
C.6和6
D.16和6
A B C D
D
[解析] 在VBA的过程调用,形参有传值调用和传址调用两种类型。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参值的变化不会反馈、影响实参的值;如果用ByRef声明,说明此参数为传址调用,此时形参值的变化会反馈、影响实参的值;如果没有声明,那么默认为传址调用。本题形参x是传值调用,y是传址调用,因此,运行后a的值没有改变,a=16;b的值改变了,b=b Mod 10=66 Mod 10=6。
37. 在窗体中有一个命令按钮Command1,对应的事件代码如下: Private Sub Command1_Click() Dim d1 As Date Dim d2 As Date d1=#12/25/2019# d2=#1/5/2020# MsgBox DateDiff("ww", d1, d2) End Sub 打开窗体运行后,单击命令按钮,消息框中输出的结果是______。