VBA流程控制
1.顺序控制与输入输出
要求:输入圆的半径,显示圆的面积。
操作步骤:
(1)在数据库窗口中,选择“模块”对象,单击“新建”按钮,打开VBE窗口。
(2)在代码窗口中输入“Area”子过程,过程Area代码如下:
Sub Area()
Dim r As Single
Dim s As Single
r = InputBox("请输入圆的半径:","输入")
s = 3.14 * r * r
MsgBox "半径为:" + Str(r) + "时的圆面积是:" + Str(s)
End Sub
(3)运行过程Area,在输入框中,如果输入半径为1,则输出的结果为:。
(4)单击工具栏中的“保存”按钮,输入模块名称为“M2”,保存模块。
2.选择控制
(1)要求:编写一个过程,从键盘上输入一个数X,如X≥0,输出它的算术平方根;如果X
操作步骤:
① 在数据库窗口中,双击模块“M2”,打开VBE窗口。
②在代码窗口中添加“Prm1”子过程,过程Prm1代码如下:
Sub Prm1()
Dim x As Single
x = InputBox("请输入X的值","输入")
If x >= 0 Then
y = Sqr(x)
Else
y = x * x
End If
MsgBox "x=" + Str(x) +"时y=" + Str(y)
End Sub
③运行Prm1过程,如果在“请输入X的值:”中输入:4(回车),则结果为:。
④单击工具栏中的“保存”按钮,保存模块M2。
(2)要求:使用选择结构程序设计方法,编写一个子过程,从键盘上输入成绩X(0~100),如果X>=85且X≤100输出“优秀”,X≥70且X
操作步骤:双击模块“M2”,进入VBE,添加子过程“Prm2”代码如下:
Sub Prm2()
num1=InputBox("请输入成绩~100")
If num1 >= 85Then
result = "优秀"
ElseIf num1>= 70 Then
result = "通过"
ElseIf num1 >= 60 Then
result = "及格"
Else
result = "不及格"
End If
MsgBox result
End Sub
反复运行过程Prm2,输入各个分数段的值,查看运行结果,如果输入的值为85,则输出结果是______。最后保存模块M2。
(3)要求:使用选择结构程序设计方法,编写一个子过程,从键盘上输入一个字符,判断输入的是大写字母,小写字母、数字还是其他特殊字符。
操作步骤:双击模块“M2”,进入VBE窗口,添加子过程“Prm3”,代码如下:
Public Subprm3()
Dim x As String
Dim Result as String
x = InputBox("请输入一个字符")
Select Case Asc(x)
Case97 To 122
Result= "小写字母"
Case65 To 90
Result= "大写字母"
Case 48 To 57
Result= "数字"
Case Else
Result= "其他特殊字符"
End Select
MsgboxResult
End sub
反复运行过程Prm3,分别输入大写字母、小写字母、数字和其他符号,查看运行结果。如果输入的是“A”,则运行结果为__________。如果输入的是“!”,则运行结果为________。最后保存模块M2。
3.循环控制
(1)要求:求前100个自然数的和
操作步骤:双击模块“M2”,进入VBE窗口,输入并补充完整子过程“Prm4”的代码,运行该过程,最后保存模块M2。
过程Prm4()代码如下:
Sub Prm4()
I = 0
Do While _________
I = I + 1
s = ________
Loop
MsgBox s
End Sub
(2)要求:计算100以内的偶数的平方根的和,要使用Exit Do语句控制循环。
操作步骤:双击模块“M2”,进入VBE窗口,输入并补充完整子过程“Prm5”代码,运行该过程,最后保存模块M2。
Prm5()过程代码如下:
Sub Prm5()
Dim x As Integer
Dim s As Single
x = 0
s = 0
Do While True
x= x + 1
If x > 100 Then
Exit Do
End If
If ________ Then
s = s + Sqr(x)
End If
Loop
MsgBox s
End Sub
(3)要求:对输入的10个整数,分别统计有几个是奇数,有几个是偶数。
操作步骤:双击模块“M2”,进入VBE窗口,输入并补充完整子过程“Prm6”代码,运行该过程,最后保存模块M2。
Prm6()过程代码如下:
Sub Prm6( )
Dim num As Integer
Dim a As Integer
Dim b As Integer
Dim i As Integer
For i= 1 To 10
num = InputBox("请输入数据:","输入",1)
If __________________Then
a = a + 1
Else
b = b + 1
End If
Next i
MsgBox("运行结果:a=" & Str(a)&",b=" & Str(b))
End Sub
(4)要求:在模块“M2”中添加子过程“Prm7”,并运行,消息框中输出结果是________________________。
操作步骤:双击模块“M2”,进入VBE,添加过程Prm7代码,并运行。最后保存模块M2。
过程Prm7代码如下:
Sub Prm7()
Dim a(10), p(3) As Integer
k = 5
For i = 1 To 10
a(i) = i * i
Next i
For i = 1 To 3
p(i) = a(i * i)
Next i
For i = 1 To 3
k = k + p(i) * 2
Next i
MsgBox k
End Sub
领取专属 10元无门槛券
私享最新 技术干货