模块与VBA编程基础习题
一、选择题
1.VBA中定义符号常量可以用关键字 A) Const B) Dim C) Public D) Static
2.Sub过程和Function过程最根本的区别是
A) Sub过程的过程名不能返回值,而Function过程能通过过程名返回值 B) Sub过程可以使用Call语句或直接便用过程名,而Function过程不能 C) 两种过程参数的传递方式不同
D) Function过程可以有参数,Sub过程不能有参数
3.定义了二维数组A(2 to 5.5),则该数组的元素个数为 A) 25 B) 36 C) 20 D) 24
4,已知程序段: s=0
For i=1 to 10 step 2 s=s+1 i=i*2 Next i
当循环结束后,变量i的值为 a ,变量s的值为 b 。 a.A) 10 B) 11 C) 22 D) 16 b.A) 3 B) 4 C) 5 D) 6
5.以下内容中不属VBA提供的数据验证函数是
A) IsText B) IsDate C) IsNumeric D) IsNull
6.已定义好有参函数f(m),其中形参m是整型量。下面调用该函数,传递实参为5,将返回的函数值赋给变量t。以下正确的是
A) t=f(m) B) t=Call f(m) C) t=f(5) D) t=Call f(5)
7.在有参函数设计时,要想实现某个参数的“双向”传递,就应当说明该形参为“传址”调用形式。其设置选项是
A) ByVal B) ByRef C) Optional D) ParamArray
8.在VBA代码调试过程中,能够显示出所有在当前过程中变量声明及变量值信息的是 A) 快速监视窗口 B) 监视窗口 C) 立即窗口 D) 本地窗口
9.VBA的逻辑值进行错误处理的语句结构是
A) 0 B) -1 C) 1 D) 任意值
10.VBA中不能进行错误处理的语句结构是
A) On Error Then 标号 B) On Error GoTo 标号 C) On Error Resume Next D) On Error GoTo 0
11.VBA中用实际参数a和b调用有参过程Area(m,n)的正确形式是 A) Area m,n B) Area a,b C) Call Area(m,n) D) Call Area a,b
12.给定日期DD,可以计算该日期当月最大天数的正确表达式是 A) Day( DD )
B) Day( DateSerial( Year( DD ),Month( DD ),Day( DD ) ) ) C) Day( DateSerial( Year( DD ),Month( DD ),0 ) ) D) Day( DateSerial( Year( DD ),Month( DD )+1,0 ) )
13.下列关于宏和模块的叙述中,正确的是 A) 模块是能够被程序调用的函数 B) 通过定义宏可以选择或更新数据
C) 宏或模块都不能是窗体或报表上的事件代码
D) 宏可以是独立的数据库对象,可以提供独立的操作动作 14.有如下VBA代码,运行结束后,变量n的值是 n=0
For i=1 To 3 For j=-4 To -1 n=n+1 Next j Next i
A) 0 B) 3 C) 4 D) 12
15.假设有如下Sub过程
Sub sfun( x As Single,y As Single ) t=x x=t/y
y=t Mod y End Sub
在窗体中添加一个命令按钮(名为Command1),编写如下事件过程: Private Sub Command1_Click() Dim a As Single Dim b As Single a=5 : b=4 sfun( a,b )
MsgBox a&char(10)+chr(13)&b End Sub
打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为 A) 1和1 B) 1.25和1 C) 1.25和4 D) 5和4 16.有如下VBA程序段: sum=0 n=0
For i=1 To 5 x=n/i n=n+1
sum=sum+x
Next i
以上For循环计算sum,完成的表达式是 A) 1+1/1+2/3+3/4+4/5 B) 1+1/2+1/3+1/4+1/5 C) 1/2+2/3+3/4+4/5 D) 1/2+1/3+1/4+1/5
17.在窗体中有一个命令按钮run16,对应的事件代码如下: Private Sub run16_Enter() Dim num As Integer Dim a As Integer Dim b As Integer Dim i As Integer For i=1 To 10
num=InputBox(\请输入数据:\输入\If Int(num/2)=num/2 Then a=a+1 Else b=b+1 End If Next i
MsgBox(\运行结果:a=\End Sub
运行以上事件所完成的功能是 A) 对输入的10个数据求累加和
B) 对输入的10个数据求各自的余数,然后再进行累加
C) 对输入的10个数据求分别统计有几个是整数,有几个是非整数 D) 对输入的10个数据求分别统计有几个是奇数,有几个是偶数 二、填空题
1.VBA的全称是________。
2.模块包含了一个声明区域和一个或多个子过程(以________开头)或函数过程(以________开头)。 3.说明变量最常用的方法,是使用________结构。
4.VBA中变量作用域分为3个层次,这3个层次是________、________和________。
5.在模块的说明区域中,用________关键字说明的变量是模块范围的变量;而用________或________关键字说明的变量是属于全局范围的变量。
6.要在程序或函数的实例间保留局部变更的值,可以用________关键字代替Dim。 7.用户定义的数据类型可以用________关键字间说明。
8.VBA的3种流程控制结构是顺序结构、________和________。 9.VBA中使用的3种选择函数是________、________和________。
10.VBA提供了多个用于数据验证的函数。其中IsDate函数用于________;________函数用于判定输入数据是否为数值。
11.VBA的有参过程定义,形参用________说明,表明该形参为传值调用;形参用ByRef说明,表明该形参为________。
12.VBA的错误处理主要使用________语句结构。 13.On Error Goto 0语句的含义是________。
14.On Error Resume Next语句的含义是________。
15.VBA语言中,函数InputBox的功能是________;________函数的功能是显示消息信息。
16.在VBA中双精度的类型标识是________。
17.在VBA中,分支结构根据________选择执行不同的程序语句。 18.VBA的逻辑值在表达式当中进行算术运算时,True值被当作________、False值被当作________来处理。 19.VBA编程中,要得到[15,75]上的随机整数可以用表达式________。 20.设有如下代码: x=1 Do x=x+2
Loop Until________
运行程序,要求循环体执行3次后结束循环,请在空白处填入适当的语句。 21.设有以下窗体单击事件过程: Private Sub Form_Click() a=1
For i=1 To 3 Select Case i Case 1,3 a=a+1 Casw 2,4 a=a+2 End Select Next i MsgBox a End Sub
打开窗体运行后,单击窗体,则消息框的输出内容是________。
22.在窗体中添加一个命令按钮(名为Command1)和一个文本框(名为Text1),编写事件代码如下: Private Sub Command1_Click()
Dim a As Integer,y As Integer,z As Integer x=5:y=7:z=0 Me! Text1=\ Call p1(x,y,z) Me! Text1=z End Sub
Sub p1(a As integer,b As Integer,c As Integer) c=a+b End Sub
打开窗体后,单击命令按钮,文本框中显示的内容是________。 23.在下面的VBA程序段运行时,内层循环的循环次数是________。 For m=0 To 7 step 3 For n=m-1 To m+1 Next n Next m
24.在窗体中使用一个文本框(名为num1)接受输入值,有一个命令按钮run,单击事件代码如下: Private Sub run_Click() If Me! num1>=60 Then result=\及格\
ElseIf Me! num1>=70 Then result=\通过\
ElseIf Me! num1>=85 Then result=\合格\ End If
MsgBox result End Sub
打开窗体后,若通过文本框输入的值为85,单击命令按钮,输出结果是________。
25.在窗体中有一个名为Command25的命令按钮,Click事件代码如下。该事件的完整功能是:接受从键盘输入的10个大于0的整数,找出其中的最大值和对应的输入位置。请依据上述功能要求将程序补充完整。
Private Sub Command25_Click() max=0 max_n=0 For i=1 To 10
num=Val( InputBox(\请输入第\个大于0的整数:\ If num>max Then max=________ max_n=________ End If Next i
MsgBox(\最大值为第\个输入的\ End Sub
第9章 VBA数据库编程
9.1 VBA常见操作
一、打开和关闭操作 1.打开窗体操作
一个程序中往往包含多个窗体,可以用代码的形式关联这些窗体,从而形成完整的程序结构。 命令格式为:
DoCmd.OpenForm formname[,view][,filtername][,wherecondition][,datamode][,windowmode]
其中filtername与wherecondition两个参数用于对窗体的数据源数据进行过滤和筛选;windowmode参数则规定窗体的打开形式。
例9.1 以对话框形式打开名为“学生信息登录”窗体。 Docmd.OpenForm\学生信息登录\
注意,参数可以省略,取缺省值,但分隔符“,”不能省略。 2.打开报表操作 命令格式为:
Docmd.OpenReport reportname[,view][,filtername][,wherecondition] 例如,预览名为“学生信息表”报表的语句为: Docmd.OpenReport\学生信息表\
注意,参数可以省略,取缺省值,但分隔符“,”不能省略。 3.关闭操作 命令格式为: