下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Esy021、选定 sheetl 工作表,合并 A1: C1 单元格,并输入“ TEST”,背景颜色设置 为浅黄色,字体颜色设置为红色,字体大小设置为 10 磅。Sub Macro1() Macro1 Macro 宏由 xu 录制,时间 : 2013/3/26 Application.Left = 201.25Application.Top = 61.75Range(A1:C1).SelectWith Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlBottom.WrapText = False.Orientatio
2、n = 0.AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder =xlContext .MergeCells = FalseEnd WithSelection.Merge Range(A1:C1).Select ActiveCell.FormulaR1C1 = TESTRange(A1:C1).SelectWith Selection .HorizontalAlignment = xlCenter .VerticalAlignment =xlCenter .WrapText = False .Orienta
3、tion = 0 .AddIndent = False .IndentLevel= 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = TrueEnd WithWith Selection.Font .Name = 宋体 .FontStyle = 常规 .Size = 10 .Strikethrough= False .Superscript = False .Subscript = False .OutlineFont = False.Shadow = False.Un derli ne = xlU nderl in
4、eStyleN one.Colorl ndex = 3End WithWith Selectio n.I nterior.ColorI ndex = 6.Pattern = xlSolid.Pattern ColorI ndex = xlAutomaticEnd WithEnd Sub2 在 sheet1 上创建“窗体”命令按钮并指定“宏”代码 sy22,补充代码完成:从键盘输入一个整数 n,输出如下图形。其中每个“ * ”在单元格中水平和垂直 方向都要求居中。1(ABCDEFGHi *2*3* * *4* * *5* * * * * *673I0B1團gSub sy22()Dim n As
5、Integer, i As Integer, j As Integer 第 1 空n = InputBox(输入行数)从键盘输入数据并存放到变量 nSheets(Sheet1).Cells.ClearContents 清除 sheet1 工作表中单元格的内容For i = 1 To n循环打印,输出 n 行*For j = 1 To 2 * i - 1每行输出奇数(2*i-1)个*,如:1, 3,5 个Cells(i, n - i + j).Value = *Next jNext iCells(1, n).Activate激活 A 列 N 行的单元格ActiveCell.Curre ntReg
6、io n.Select 选定单元格所在的当前区域With Selectio n.Fo nt.Size = 16字体大小.Fo nt.Bold = True字体加粗.Horizo ntalAlig nment = xlCe nter 水平方向居中.VerticalAlig nment = xlCe nter垂直方向居中End WithEnd subEsy031. 调用 EXCEL 的 RAND 和 INT 内部函数,在 A 列的 110 行输入序号 110 , 在B 列的 1 10 行填入 0 1 之间的随机数, 在 C 列的 1 10 行填入两位正整数, 最后在 C 列的 11 行求出该列的最
7、大数(调用 MAX 函数) 请参照程序上下文补充完整的语句Sub sy31()Dim k As IntegerDim a As String, b As String, c As StringFor k = 1 To 10 a =A & kb = B & kc = C & kRange(b).Value= Rnd() 填入 0-1 之间的随机数Range(c).Value= 10 + Int(90 * Rnd()1-10 行填入两位正整数Next kSet myr = Worksheets(Sheet1).Range(C1:C10)Ran ge(c11) = Works
8、heetFu nctio n.Max(myr)在 C 列的 11 行求出该列的最大数(调用 MAX 函数)End SubEsy04输入一个字符,判断该字符是字母字符、数字字符还是其他字符,并用 Msgbox 函数输出结 果。分析:用 IF 语句实现Sub pdzi()Dim strC As String 定义变量 strC 为字符型strC = InputBox(请输入字符)第 1 空,利用 InputBox 函数输入字符放到 strC 中If UCase(strC) = A And UCase(strC) = 0 And strC = 90第 2 空ActiveCell = 优Case Is
9、 = 80ActiveCell = 良Case Is = 70ActiveCell = 中Case Is = 60ActiveCell = 及格 Case ElseActiveCell = 不及格 第 3 空End SelectEnd Sub4 :打开 Excel 工作簿 EC404.xls,在 A2 , B2 和 C2 单元格输入 a, b, c 的值,单击最大值 按钮,在D2 显示这三个数的最大值。解题思路:假设三个数中的第一个数是最大值,用这个假定的最大值分别跟剩下的两个数比较,如果假定的最大值小于其它两个数,则最大值为较大的那个数。Sub max()Dim a As Double, b
10、 As Double, c As Double, max As Doublea = Val(Cells(2, 1)b = Val(Cells(2, 2)c = Val(Cells(2, 3)max = a 第 1 空If max b The n max = b 第 2 空End IfIf max = 0第 1 空sum = sum + data第 2 空k = k + 1第 3 空data = InputBox(请输入数据:)LoopMsgBox 一共输入了 & k & 个数。_& vbCrLf & 其和为& sum & 其平均值为:&
11、sum / kEnd Sub实验 3 :编写程序计算 SUM=1+1*2+1*2*3”+1*2*3*100的和。解题思路:该题用 Do Loop 结构实现累积与累加,目标是求100 项的累加,而每一一项是一个累积式。Sub multi()Dim sum As DoubleDim i As In tegerDim t As Doublei = 1: t = 1: sum = 0Do While i = 100 第 1 空t = t * i第 2 空sum = sum + t第 3 空i = i + 1 第 4 空LoopMsgBox (1+1*2+1*2*3+.+1*2*3*.*100= &am
12、p; sum)End Sub实验 4:打开 Excel 工作簿 E504.xls ,编写程序, 将当前工作表中第 1 行从指定位置 m 开始 的 n 个数按相反顺序重新排列。例如,原数列为:1,2,3,4, 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20。从第 5 个数开始,将 10 个数进行逆序排列,则 得到新数列为: 1,2,3, 4,14,13,12, 11,10,9,8,7,6,5,15,16,17,18, 19,20。Sub 逆置 ()i = Cells(6, 12) 起始位置j = i + Cells(7, 12) - 1 第 1 空,终止位置
13、Do While i = o And a = Cells(1, s) Then Exit ForCells(1, s + 1) = Cells(1, s)Next sCells(1, s + 1) = ar = r + 1Next空 ,从后往前扫描 第 4 空,退出本层循环 第 2 空,移动数据插入数据第 3 空 ,修改目标数据区长度 第 5 空实验 3:在“ D:Esy06 ”文件夹下打开文件EC603.xls ,“求任意区域数值总和”按钮指定到NextNextbs = bs + 1 第 4 空, #4# Loop While bs = m 第 5 空, #5#End SubEsy07实验
14、1 :打开文件 E701.xls ,“一维数组求极值”按钮指定到名称为“一维数组求极值”的 宏,补充宏代码,使之完成如下功能:输入 10 个数,将这 10 个数分别放在第 1 行的 10 个 单元格中,求出这 10 个数的最大值和最小值放在相对应的单元格中。Sub 一维数组求极值 ()Dim E(1 To 10) As Single第 1 空,定义一个名称为 E,元素个数为 10 的一维数组Dim max As Single, min As SingleMsgBox 输入的 10 个数据如下: For i = 1 To 10For 语句的作用是先将输入的数据放到数组中,然后再将数组中的数放到对
15、应单元格里E(i) = InputBox(请输入数据:)第 2 空Cells(1, i) = i第 3 空Next imax = E(1):min = E(1)For i = 2 To 10If max E(i) Then min = E(i)第 5 空Next iCells(2, 2) = maxCells(3, 2) = min End Sub实验 2 :打开文件 E702.xls ,“一维动态数组的使用”按钮指定到名称为“一维动态数组的 使用”的宏,补充宏代码,将整型动态数组 X 声明为具有 20 个元素的数组,并给数组的所 有元素赋值 1 。Sub 一维动态数组的使用 ()Dim X(
16、) As Integer 第 6 空 ReDimX(1 To 20) 第 7 空For I = 1 To 20X(I) = 1 第 8 空 Cells(I, 1) = X(I) Next IEnd Sub实验 3 :打开文件 E703.xls ,“统计英语成绩”按钮指定到名称为“统计英语成绩”的宏, 补充宏代码, 使之完成如下功能: 首先输入该班人数, 然后再分别输入该班学生的英语成绩 并将英语成绩依次放在第 1 行,将大于平均值的数据以红色字体显示出来。Sub 统计英语成绩 ()Dim E() As SingleDim n As IntegerDim s As Single, aver As
17、 Singlen = InputBox(请输入该班的人数)ReDim E(n)第 9 空MsgBox 输入的& n & 个数据如下:For i = 1 To nE(i) = InputBox(请输入英语成绩:)Cells(1, i) = E(i)s = s + E(i)第 10 空Next iaver = s/n第 11 空MsgBox 将大于平均值的数据以红色字体显示出来:For i = 1 To nIf aver z And y + z x And x + z y The n 第 5 空, area = (c - x) * (c - y) * (c - z)A1 / 2 第
18、 6 空Elsearea =这三条边不能组成三角形!End IfEnd Function实验 3 :打开文件 E803.xls ,补充宏代码,完成如下功能:将当前工作表中第1 行从指定位置 m 开始的 n 个数按相反顺序重新排列。例如,原数列为: 1 ,2 ,3 ,4,5 ,6 ,7 ,8,9 , 10 ,11 ,12 ,13 ,14,15 ,16,17 ,18 ,19,20。从第 5 个数开始,将 10 个数进行逆序 排列,则得到新数列为: 1,2,3,4,14,13,12,11,10,9,8, 7,6,5,15,16, 17,18,19, 20。Sub 逆置 ()i = Cells(6,
19、12) 起始位置j = i + Cells(7, 12) - 1 终止位置Do While i = 0 And a = 1DO 语句实现字符串的反向,基本思路是从右边一个一个的截取字符放到给定变量中,变量中的字符串即为反向字符串tempStr = tempStr & Mid(xStr, I, 1)第 15 空I = I - 1LoopyStr = tempStr第 16 空End SubSub 字符反向输出()Dim s1 As Stri ng, s2 As Stri ngs1 = In putBox(请输入字符串:)Call In vert(s1, s2)第 17 空MsgBox s
20、2End SubEsy11期中考1、请打开实验文件夹下的 sy01.xls 文件,完成如下操作:编程序,打印九九乘法表如下。 其中乘数和被乘数所在单元格字符格式为加粗,水平居中。ABCDEFGHIJ11 234567Si92113224433695448 1216655101520257661218243036877142128354249g8S 1624324048566410991827364554637281Sub jiujiu()Dim i As In teger, j As In tegerFor i = 1 To 9Cells(1, i + 1).Value = i 第 1 空,#
21、(1)#.Value = i 生成乘法表的第 1 行Cells(i + 1, 1).Value = i 第 2 空,#(2)#.Value = i 生成乘法表的第 1 列 NextiRows(1).Font.Bold = True 第 3 空 #(3)#.Font.Bold = TrueRows(1).Horizo ntalAlig nment = xlCe nterColumns(1).Font.Bold = True第 4 空 #.Font.Bold = TrueColumns(1).HorizontalAlignment = xlCenter 第 5 空 Columns(1).#(5)#
22、 = xlCenterFor i = 1 To 9For j = 1 To i 第 6 空 For j = #(6)#Cells(i + 1, j + 1).Value = i * j 第 7 空 #(7)# = i * jNext jNext iEnd Sub2、请打开实验文件夹下的 sy02.xls 文件,完成题目要求的操作。Sub 男生分班 ()Sub 男生分班 ()Dim k As IntegerFor Each sht In Worksheets检查“男生”工作表是否存在,如果存在则删除If sht.Name =男生Then Sheets(男生).Delete Sheets(男生).
23、# (1) #NextSheets.Add建立男生工作表及表头信息Range(a1:d1).Merge #(2) #.MergeActiveSheet.Name = 男生 #(3) # = 男生 活动工作表的名字为 “男生”Range(A1:D1).Value = 2000 级男生信息表 Range(A1:D1).#(4)# =2000 级男生信息表 Range(A2).FormulaR1C1 = Sheets(学生成绩).Range(A3).ValueRange(B2).FormulaR1C1 = Sheets(学生成绩).Range(B3).ValueRange(C2).FormulaR1
24、C1 = Sheets(学生成绩).Range(C3).ValueRange(D2).FormulaR1C1 = Sheets(学生成绩).Range(D3).Value- 从“学生成绩表”中提取男生成绩并赋值给“男生”工作表 -k = 3k 为男生表中每位学生记录的插入位置For i = 4 To Sheets(学生成绩).Range(a65536).End(xlUp).Row 从第 4 行到 工作表最后一行,读取学生成绩表所有数据If SheetsC 学生成绩).Cells(i, 3).Value =男Then如果性别为男,则提取数据For j = 1 To 4 j 为学生数据的四个列Cells(k, j) = SheetsC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织品裁剪工技术创新能力考核试卷含答案
- 日用化学用品配方师班组安全知识考核试卷含答案
- 列车值班员岗前消防知识考核试卷含答案
- 工程法规第1章导论34p
- 三七灰土地基的施工工艺
- 全国计算机等级考试四级数据库模拟题真题及答案
- 2026年最-新通信工程师考试通信专业综合能力(初级)试题与答案
- 2026年人工智能训练师三级认证考试真题(附答案)
- 专利壁垒构建在果刀项目投资护城河评估中的量化分析
- 下沉市场味觉变迁对调味斗产品矩阵的重塑逻辑
- 2025届上海市长宁区高三一模英语试题(含答案)
- 变电运维专业知识竞赛考试题库
- 生物医学信号处理
- 《烙铁培训资料》课件
- 人教版三年级上册《生命.生态.安全》全册教案(及计划)
- 历史文化名城保护与发展研究
- 小区广告位招租模板(五篇)
- 初三开学第一课主题班会ppt
- (完整版)支气管哮喘入院记录首次病程记录及出院记录
- 教师口语表达训练
- 学校三年一体化教学管理方案
评论
0/150
提交评论