完整word版Excel高级应用VBA实验题目解析.docx
- 文档编号:1988640
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:19
- 大小:85.46KB
完整word版Excel高级应用VBA实验题目解析.docx
《完整word版Excel高级应用VBA实验题目解析.docx》由会员分享,可在线阅读,更多相关《完整word版Excel高级应用VBA实验题目解析.docx(19页珍藏版)》请在冰豆网上搜索。
完整word版Excel高级应用VBA实验题目解析
Esy02
1、选定sheet1工作表,合并A1:
C1单元格,并输入“TEST”,背景颜色设置为浅黄色,字体颜色设置为红色,字体大小设置为10磅。
SubMacro1()
'Macro1Macro
'宏由xu录制,时间:
2013/3/26
'Application.Left=201.25
Application.Top=61.75
Range("A1:
C1").Select
WithSelection
.HorizontalAlignment=xlCenter
.VerticalAlignment=xlBottom
.WrapText=False
.Orientation=0
.AddIndent=False
.IndentLevel=0
.ShrinkToFit=False
.ReadingOrder=xlContext
.MergeCells=False
EndWith
Selection.Merge
Range("A1:
C1").Select
ActiveCell.FormulaR1C1="TEST"
Range("A1:
C1").Select
WithSelection
.HorizontalAlignment=xlCenter
.VerticalAlignment=xlCenter
.WrapText=False
.Orientation=0
.AddIndent=False
.IndentLevel=0
.ShrinkToFit=False
.ReadingOrder=xlContext
.MergeCells=True
EndWith
WithSelection.Font
.Name="宋体"
.FontStyle="常规"
.Size=10
.Strikethrough=False
.Superscript=False
.Subscript=False
.OutlineFont=False
.Shadow=False
.Underline=xlUnderlineStyleNone
.ColorIndex=3
EndWith
WithSelection.Interior
.ColorIndex=6
.Pattern=xlSolid
.PatternColorIndex=xlAutomatic
EndWith
EndSub
2在sheet1上创建“窗体”命令按钮并指定“宏”代码sy22,补充代码完成:
从键盘输入一个整数n,输出如下图形。
其中每个“*”在单元格中水平和垂直方向都要求居中。
n
Subsy22()
DimnAsInteger,iAsInteger,jAsInteger'第1空
n=InputBox("输入行数")'从键盘输入数据并存放到变量n
Sheets("Sheet1").Cells.ClearContents'清除sheet1工作表中单元格的内容
Fori=1Ton'循环打印,输出n行"*"
Forj=1To2*i-1'每行输出奇数(2*i-1)个"*",如:
1,3,5个
Cells(i,n-i+j).Value="*"
Nextj
Nexti
Cells(1,n).Activate'激活A列N行的单元格
ActiveCell.CurrentRegion.Select'选定单元格所在的当前区域
WithSelection
.Font.Size=16'字体大小
.Font.Bold=True'字体加粗
.HorizontalAlignment=xlCenter'水平方向居中
.VerticalAlignment=xlCenter'垂直方向居中
EndWith
Endsub
Esy03
1.调用EXCEL的RAND和INT内部函数,在A列的1—10行输入序号1—10,在B列的1—10行填入0—1之间的随机数,在C列的1—10行填入两位正整数,最后在C列的11行求出该列的最大数(调用MAX函数)。
'请参照程序上下文补充完整的语句
Subsy31()
DimkAsInteger
DimaAsString,bAsString,cAsString
Fork=1To10
a="A"&k
b="B"&k
c="C"&k
Range(a).Value=k'在A列的1-10行输入序号1-10
Range(b).Value=Rnd()'在B列的1-10行填入0-1之间的随机数
Range(c).Value=10+Int(90*Rnd())'在C列的1-10行填入两位正整数
Nextk
Setmyr=Worksheets("Sheet1").Range("C1:
C10")
Range("c11")=WorksheetFunction.Max(myr)'在C列的11行求出该列的最大数(调用MAX函数)
EndSub
Esy04
输入一个字符,判断该字符是字母字符、数字字符还是其他字符,并用Msgbox函数输出结果。
分析:
用IF语句实现
Subpdzi()
DimstrCAsString'定义变量strC为字符型
strC=InputBox("请输入字符")'第1空,利用InputBox函数输入字符放到strC中
IfUCase(strC)>="A"AndUCase(strC)<="Z"Then'判断输入字符是否为A~Z(其中UCase函数为将字符转换成大写字符的函数)
MsgBox(strC&"是字母")'第2空,利用MsgBox函数输出判断结果
ElseIfstrC>=0AndstrC<=9Then''第3空,判断输入字符是否为0~9
MsgBox(strC&"是数字")'利用MsgBox函数输出判断结果
Else'第4空
MsgBox("字符"&strC&"既不是字母,也不是数字")'利用MsgBox函数输出判断结果
EndIf
EndSub
2某学校的职工人事数据存在Excel工作表中。
现要按职称提升每位职工的工资,各种职称的工资增长情况如下:
教授150、副教授130、讲师100、助教80、高级工程师150、工程师140、助工90。
用select语句编写计算增加工资的过程。
Subaddsalary()
r=ActiveCell.Row'活动单元格为要求得增加工资的单元格,计算活动单元格的行号
t=Cells(r,3)'第1空,定位“职称”所在的单元格
SelectCaset
Case"教授","高级工程师"'第2空
ActiveCell=150
Case"副教授"
ActiveCell=130
Case"讲师"
ActiveCell=100
Case"助教"
ActiveCell=80
Case"工程师"
ActiveCell=140
Case"助工"
ActiveCell=90
EndSelect'第3空,
EndSub
3:
某教师讲授了一门考查课程,他平时及期末考试都用百分制衡量学生的成绩,设该教师的成绩表如图所示。
学校要求最后的成绩都用等级制。
百分制与等级制的转换规则为:
60分以下为不及格,60~70分为及格,70~80分为中等,80~90分为良,90~100分为优。
编写一个百分制与等级制的转换过程实现成绩的等级转换。
Subchange()
score=ActiveCell.Offset(0,-1).Value'第1空
SelectCasescore
CaseIs>=90'第2空
ActiveCell="优"
CaseIs>=80
ActiveCell="良"
CaseIs>=70
ActiveCell="中"
CaseIs>=60
ActiveCell="及格"
CaseElse'第3空
ActiveCell="不及格"
EndSelect
EndSub
4:
打开Excel工作簿EC404.xls,在A2,B2和C2单元格输入a,b,c的值,单击最大值按钮,在D2显示这三个数的最大值。
解题思路:
假设三个数中的第一个数是最大值,用这个假定的最大值分别跟剩下的两个数比较,如果假定的最大值小于其它两个数,则最大值为较大的那个数。
Submax()
DimaAsDouble,bAsDouble,cAsDouble,maxAsDouble
a=Val(Cells(2,1))
b=Val(Cells(2,2))
c=Val(Cells(2,3))
max=a'第1空
Ifmax max=b'第2空 EndIf Ifmax max=c'第4空 EndIf Cells(2,4)=max EndSub 5: 编写程序: 创建一简单应用程序,单击窗体,利用InputBox函数如(图2)所示显示对话框,设定固定密码就是“password”(注意输入的大小写);若输入密码正确与否,利用MsgBox函数分别显示如(图3)和(图4)所示来提示用户输入的密码正确与不正确的对话框。 (图2) (图3)(图4) 提示: 请根据图3和图4中的界面填写第2空和第3空,Msgbox函数的格式为: Msgbox提示信息,按钮数目及形式,对话框标题 Subpass() t=InputBox("请输入密码","输入密码") Ift="password"Then'第1空 MsgBox"恭喜你,密码正确! ",0,"正确"'第2空 Else MsgBox"对不起! 你是非法用户! ",vbCritical,"拒绝"'第3空 EndIf EndSub Esy05 实验1: 编写程序,求1+2+3+….+10的和并输出其结果。 解题思路: 该题用For……Next结构实现累加。 Subsum() Rem求1+2+..+10的和并输出 DimsAsInteger s=0'第1空 Fori=1To10'第2空 s=s+i'第3空 Nexti MsgBox("1+2+3+...+10="&s)'第4空 EndSub 实验2: 输入任意多个正整数,编写程序求其和与平均值。 当输入数小于0时结束数据的输入。 解题思路: 该题用DoWhile……Loop结构实现累加,While后面需要有控制循环是否继续的条件,请注意While与Until的区别。 Subcomput() DimsumAsLong'sum用来保存所输入数的和 DimdataAsInteger D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word Excel 高级 应用 VBA 实验 题目 解析