VBA程序设计范例.docx
- 文档编号:11986356
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:14
- 大小:77.43KB
VBA程序设计范例.docx
《VBA程序设计范例.docx》由会员分享,可在线阅读,更多相关《VBA程序设计范例.docx(14页珍藏版)》请在冰豆网上搜索。
VBA程序设计范例
高考VBA程序设计解析
一、累加和问题:
1、基本问题
问题:
编程计算1+2+3+…+100;
程序界面:
源代码:
PrivateSubCommand3_Click()
DimsAsInteger
DimiAsInteger
s=0
Fori=1To100Step1
s=s+i
Nexti
=s
EndSub
PrivateSubCommand4_Click()
acForm,"VBA程序设计范例1"
EndSub
2、问题拓展
拓展1:
编程计算1+3+5+7+…+99;
源代码修改:
Fori=1To99Step2
s=s+i
Nexti
拓展2:
编程计算2+4+6+8+…+100;
源代码修改:
Fori=2To100Step2
s=s+i
Nexti
拓展3:
编程计算1+2+3+…+N;
程序界面:
源代码:
PrivateSubCommand10_Click()
DimiAsInteger
DimsAsInteger
IfTrim=Space(0)Then
MsgBox"请输入N的值!
",vbOKOnly
ExitSub
ElseIfVal<1Then
MsgBox"请输入大于1的正整数!
",vbOKOnly
ExitSub
EndIf
s=0
Fori=1ToValStep1
s=s+i
Nexti
=s
EndSub
拓展4:
编程计算1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+100);
程序界面:
源代码:
PrivateSubCommand3_Click()
DimiAsInteger,jAsInteger
Dims1AsInteger,s2AsDouble
s1=0
s2=0
Fori=1To100Step1
s1=0
Forj=1Toi
s1=s1+j
Nextj
s2=s2+s1
Nexti
=s2
EndSub
拓展5:
编程计算1+(1+3)+(1+3+5)+(1+3+5+7)+…+(1+3+5+7+…+99);
源代码:
PrivateSubCommand3_Click()
DimiAsInteger,jAsInteger
Dims1AsInteger,s2AsDouble
s1=0
s2=0
Fori=1To50Step1
s1=0
Forj=1Toi*2-1step2
s1=s1+j
Nextj
s2=s2+s1
Nexti
=s2
EndSub
3、算法相关问题
编程计算1*2*3*…*100;
提示:
内存变量的数据类型的确定;
二、排序问题
1、基本问题
问题:
提示用户输入两个数,比较其大小;
源代码:
PrivateSubCommand4_Click()
Dima1AsString
Dima2AsString
Dimb1AsInteger
Dimb2AsInteger
a1=Trim
a2=Trim
Ifa1=Space(0)Ora2=Space(0)Then
MsgBox"请输入两个待比较的数!
",vbOKOnly
ExitSub
EndIf
b1=Val(a1)
b2=Val(a2)
Ifb1 ="小于" ElseIfb1=b2Then ="等于" Else ="大于" EndIf EndSub 2、问题拓展 拓展1: 有一组数: 3,2,7,1,5,4,12,10,8,6,请找出这组数的最小(大)值; 程序界面: 源代码: PrivateSubCommand4_Click() DimmaxvalueAsInteger DimminvalueAsInteger Dimarr(1To10)AsInteger arr (1)=3 arr (2)=2 arr(3)=7 arr(4)=1 arr(5)=5 arr(6)=4 arr(7)=12 arr(8)=10 arr(9)=8 arr(10)=6 maxvalue=arr (1) minvalue=arr (1) Fori=2To10 Ifarr(i)>maxvalueThen maxvalue=arr(i) EndIf Ifarr(i) minvalue=arr(i) EndIf Nexti =maxvalue =minvalue EndSub 拓展2: 有一组数: 3,2,7,1,5,4,12,10,8,6,请按升序排序输出这组数; 程序界面: 源代码: PrivateSubCommand4_Click() Dimarr(1To10)AsInteger arr (1)=3 arr (2)=2 arr(3)=7 arr(4)=1 arr(5)=5 arr(6)=4 arr(7)=12 arr(8)=10 arr(9)=8 arr(10)=6 Fori=1To9 Forj=i+1To10 Ifarr(i)>arr(j)Then temp=arr(i) arr(i)=arr(j) arr(j)=temp EndIf Nextj Nexti Fori=1To10 =&arr(i)&"," Nexti EndSub 拓展3: 输入一组数,请按升序排序输出这组数; 程序界面: 源代码: PrivateSubCommand6_Click() Dimarr(1To10)AsInteger DimiAsInteger DimjAsInteger DimtempAsInteger Dims1AsString Fori=1To10 arr(i)=InputBox("请输入第"&i&"个数: ") s1=s1&arr(i)&"," Nexti =s1 Fori=1To9 Forj=i+1To10 Ifarr(i)>arr(j)Then temp=arr(i) arr(i)=arr(j) arr(j)=temp EndIf Nextj Nexti Fori=1To10 =&arr(i)&"," Nexti EndSub 三、窗体设计 1、基本问题 源代码: PrivateSubCommand11_Click() OnErrorGoToErr_Command11_Click ,acFirst Exit_Command11_Click: ExitSub Err_Command11_Click: MsgBox ResumeExit_Command11_Click EndSub PrivateSubCommand12_Click() OnErrorGoToErr_Command12_Click ,acPrevious Exit_Command12_Click: ExitSub Err_Command12_Click: MsgBox ResumeExit_Command12_Click EndSub PrivateSubCommand13_Click() OnErrorGoToErr_Command13_Click ,acNext Exit_Command13_Click: ExitSub Err_Command13_Click: MsgBox ResumeExit_Command13_Click EndSub PrivateSubCommand14_Click() OnErrorGoToErr_Command14_Click ,acLast Exit_Command14_Click: ExitSub Err_Command14_Click: MsgBox ResumeExit_Command14_Click EndSub 2、问题拓展 拓展1: 窗体查询1 源代码: ①SQL查询部分: SELECT*FROM学生学籍 WHERE姓名likeforms! 窗体查询_主子窗体②子窗体的源对象设置为查询对象; ③查询按钮单击事件代码: PrivateSubCommand6_Click() DimstudnameAsString studname=Trim Ifstudname=Space(0)Then MsgBox"请输入学生姓名! ",vbOKOnly Else If EndSub 拓展2: 窗体查询2 源代码: ①SQL查询部分: SELECT学生学籍.班级编号,学生学籍.学号,学生学籍.姓名,学生成绩.学期,学生成绩.语文,学生成绩.数学,学生成绩.英语,学生成绩.专业一,学生成绩.专业二,学生成绩.总分 FROM学生学籍INNERJOIN学生成绩ON(学生学籍.学号=学生成绩.学号)AND(学生学籍.班级编号=学生成绩.班级编号) WHERE姓名likeforms! 窗体查询_主子窗体②子窗体的源对象设置为查询对象; ③查询按钮单击事件代码: PrivateSubCommand6_Click() DimstudnameAsString studname=Trim Ifstudname=Space(0)Then MsgBox"请输入学生姓名! ",vbOKOnly Else If EndSub 精心搜集整理,只为你的需要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 程序设计 范例
![提示](https://static.bdocx.com/images/bang_tan.gif)