VBA理 论 练 习 题 第 1 页 共 43 页
第一部分(模块与VBA编程基础<习题8>)(p1~p6)
一、选择题(1~17)(p1-p3):
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(m) C)t=f(5) D)t=Callf(5)
7.在有参函数设计时,要想实现某个参数的“双向”传递,就应当说明该形参为“传址”调用形式。其设置选项是
A)ByVal B)ByRef C)Optional D)ParamArray
8.在VBA代码调试过程中,能够显示出所有在当前过程中变量声明及变量值信息的是
VBA理 论 练 习 题 第 2 页 共 43 页
A)快速监视窗口 B)监视窗口 C)立即窗口 D)本地窗口 9.VBA的逻辑值进行算术运算时,True值被当作 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 Go 100
11.VBA中用实际参数a和b调用有参过程Area(m,n)的正确形式是
A)Aream,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
Forj=-4 To -1 n=n+1 Nextj 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 ‘mod求余计算 例7 mod 4 =3 End Sub
VBA理 论 练 习 题 第 3 页 共 43 页
在窗体中添加一个命令按钮(名为Comnndl),编写如下事件过程
Private Sub Commandl_Click() Dim a As SinSle Dim b As SinSle a=5:b=4
sfun(a,b) ‘原书有错,改为:sfun a,b或call sfun(a,b) MsgBox a & chr(10) + chr(13) & b ‘chr(数值)的功能返回数值对应的字母 End Sub ‘chr(10)=’返回1个换行符
?????‘chr(13)=’返回一个空格符号
注意:a → x ; b → y 是按地址传递的,因此不能写成sfun 5,4 chr与Asc互逆 例asc(a)=97 ; chr(97)=a asc(chr(97))=97 打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为 A)1和1 B)1.25和l C)1.25和4 D)5和4 16.有如下VBA程序段:
sum=0 n=0
For i=1 TO 5 x=n/i n=n+1 slim=sum 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.在窗体中有一个命令按钮runl6,对应的事件代码如下:
Private Sub runl6_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 ‘Int取整函数 例int(3.5)=3 a=a+1 Else b=b+1
VBA理 论 练 习 题 第 4 页 共 43 页
End lf Next I
MsgBox(\运行结果:a=\,b=\
End Sub ‘str(123)=”123”将123转换成字符串 与val互逆。例:Val(str(123))=123 运行以上事件所完成的功能是 A)对输入的10个数据求累加和
B)对输入的10个数据求各自的余数,然后再进行累加
c)对输入的10个数据求分别统计有几个是整数,有几个是非整数 D)对输人的10个数据求分别统计有几个是奇数,有几个是偶数
二、填空题(1~25)(p4—p6)
1.VBA的全称是 Visual Basic for Application。
2.模块包含了一个声明区域和一个或多个子过程(以Sub开头)或函数过程(以Function开头)。
3. 说明变量最常用的方法,是使用Dim ? As ?结构.
4.VBA中变量作用域分为3个层次,这3个层次是局部变量、模块变量和全局变量。 5.在模块的说明区域中,用private关键字说明的变量是模块范围的变量;而用public或Global键字说明的变量是属于全局范围的变量。
6.要在程序或函数的实例间保留局部变量的值,可以用Static关键字代替Dim。 7.用户定义的数据类型可以用Type?Type End关键字间说明。 8.VBA的3种流程控制结构是顺序结构、选择结构和循环结构。 9.VBA中使用的3种选择函数是IIf、Switch和Choose。
10.VBA提供了多个用于数据验证的函数。其中IsDate函数用于合法日期验证;IsNumeric函数用于判定输入数据是否为数值。
11.VBA的有参过程定义,形参用ByVal说明,表明该形参为传值调用;形参用ByRef说明,表明该形参为传址调用.
12.VBA的错误处理主要使用On Error语句结构。 13.On Error Goto 0语句的含义是取消错误处理。
14.On Error Resume Next语句的含义是忽略错误并执行下一条语句。 15.VBA语言中,函数lnputBox的功能是输入数据对话框; Msgbos函数的功能是显示消息信息。
VBA理 论 练 习 题 第 5 页 共 43 页
16.在VBA中双精度的类型标识是Double。
17.在VBA中,分支结构根据条件(或条件表达式)选择执行不同的程序语句。 18.VBA的逻辑值在表达式当中进行算术运算时,True值被当作-1、False值被当作0来处理。
19.VBA编程中,要得到[15,75]上的随机整数可以用表达式Int(15+61*Rnd). 20.设有如下代码:
X=1
Do
x=x+2
Loop Until x=7 (或x>=7 或 x>6)
运行程序,要求循环体执行3次后结束循环,请在空白处填入适当的语句 21.设有以下窗体单击事件过程:
Private Sub Form_Click() a=1
for i=1 to 3 Select Case i Case 1,3 a=a+1 Case 2,4 a=a+2 end Select Next i MsgBox a End Sub
打开窗体运行后,单击窗体,则消息框的输出内容是5。
22.在窗体中添加一个命令按钮(名为Commandl)和一个文本框(名为Textl),编写事件代码如下
Private Sub Commandl Click()
Dim a As Integer,y As Integer x=5:y=7:z=0 Me!Textl=\ Call Pl(x,x,z) Me!Textl=z End Sub
Private p1(a As Integer,b As Integer,c As Integer)