因单位要求,帮镇工会组织的“2008迎奥运,计算机操作竞赛”出试题。主要内容有打字、Word操作、Excel操作和PPT操作。由于参加竞赛的人员 较多,不可能为每一位选手手工评分,所以用Office中的VBA来实现各个模块试题的自动评分。现将各部分操作题目及VBA程序贴出。

Exce中实现自动评分
以下是Excel题目:

●注意:全文内容、位置不得随意变动,红框之内的文字不得做任何修改,否则影响批改成绩。
●共100分
1.在“A18”单元格输入标题“内资注册登记企业在各行业分布情况”的文字,并设置成黑体、蓝色、20号字;
2.合并“A18:G18”单元格,并设置水平和垂直居中。
3.在表格中“社会服务业”的前面增加一行数据“房地产业 36 4 4 0”
4.用公式求出各行业的“合计”数填入相应的单元格中;公司法人或单位的“平均值”填入相应的单元格(平均值保留两位小数);计算有限公司在自己行业中的百分比填入相应单元格中,(百分比=有限公司/合计)并保留两位小数的百分比格式。
5.给表格(A19:G35)加上蓝色细实线的边框。
6.给当前表格19行“行业……”所在行设置行高为“25”,并把该行有文字的单元格设置“天蓝色底纹”。
7.表中的信息以“有限公司”为主要关键字,“分公司”为次要关键字进行降序排列;并把排行前3位的数据复制到sheet2中“A4”起始位置上,然后把sheet2改名为“3强”
8.在sheet3工作表中筛选出“营业单位”大于30而且“一般法人”大于等于85的行业。
9.在sheet4工作表的"B23:H40"位置,以“行业”和“合计”为数据建立一个“堆积柱型图”(要求系列产生在列,图表标题为“合计分析图”)
行业 有限公司 分公司 一般法人 营业单位 合计 百分比
农、林、牧、渔业 8 0 7 0
采掘业 0 3 3 0
制造业 111 28 90 33
电力、煤气及水的生产和供应业 2 1 0 1
建筑业 39 77 6 38
地址勘查业、水利管理业 0 0 1 1
交通运输、仓储及邮电通信业 9 21 3 76
批发和零售贸易、餐饮业 137 147 85 319
金融、保险业 6 10 3 7
社会服务业 52 39 42 50
卫生、体育和社会福利业 0 1 0 3
教育、文化艺术及广播电影电视业 1 1 6 8
科学研究和综合技术服务业 19 2 8 9
其他行业 7 5 1 3
平均

以下是Excel自动阅卷VBA代码:
  Score = 0
  ef = ""
  With Sheet1
      '题目1
      If .Range("A18:A18").Value = "内资注册登记企业在各行业分布情况" Then
         Score = Score + 5
         Else
           ef = ef & "第1题输入标题错误" & vbCrLf
      End If
      If .Range("A18:A18").Font.Name = "黑体" Then
         Score = Score + 3
         Else
           ef = ef & "第1题设置字体错误" & vbCrLf
      End If
       If .Range("A18:A18").Font.ColorIndex = 5 Then
         Score = Score + 3
         Else
           ef = ef & "第1题设置字体颜色错误" & vbCrLf
      End If
      If .Range("A18:A18").Font.Size = 20 Then
         Score = Score + 3
         Else
           ef = ef & "第1题设置字号错误" & vbCrLf
      End If
     
      '题目2
      If .Range("A18:G18").MergeCells = True Then
        Score = Score + 5
        Else: ef = ef & "第2题单元格合并错误" & vbCrLf
      End If
       If .Range("A18:G18").HorizontalAlignment = xlCenter Then
        Score = Score + 3
        Else: ef = ef & "第2题水平居中错误" & vbCrLf
      End If
      If .Range("A18:G18").VerticalAlignment = xlCenter Then
        Score = Score + 3
        Else: ef = ef & "第2题垂直居中错误" & vbCrLf
      End If
      
      '题目3
       Find = False
      For i = 20 To 35
        If .Cells(i, 1) = "房地产业" And .Cells(i, 2) = 36 And .Cells(i, 3) = 4 And .Cells(i, 4) = 4 And .Cells(i, 5) = 0 Then
        Score = Score + 5
        Find = True
        Exit For
        Else
          Find = False
        End If
      Next i
        If Find = False Then
        ef = ef & "第3题插入一行错误或数据输入错误" & vbCrLf
        End If
    
      
      '题目4
       If .Range("F20:F33").HasFormula = True And .Range("f20:F20").Value = .Cells(20, 2) + .Cells(20, 3) + .Cells(20, 4) + .Cells(20, 5) And .Range("f33:F33").Value = .Cells(33, 2) + .Cells(33, 3) + .Cells(33, 4) + .Cells(33, 5) Then
        Score = Score + 5
        Else
        ef = ef & "第4题计算合计错误" & vbCrLf
      End If
      a = 0
      s1 = 0
      s2 = 0
      s3 = 0
      s4 = 0
      s11 = 0
      s22 = 0
      s33 = 0
      s44 = 0
      For i = 20 To 33
      On Error Resume Next
        s1 = s1 + Sheet1.Cells(i, 2)
        s2 = s2 + Sheet1.Cells(i, 3)
        s3 = s3 + Sheet1.Cells(i, 4)
        s4 = s4 + Sheet1.Cells(i, 5)
        a = a + 1
      Next i
      s11 = s1 + Sheet1.Cells(34, 2)
       s22 = s2 + Sheet1.Cells(34, 3)
        s33 = s3 + Sheet1.Cells(34, 4)
         s44 = s4 + Sheet1.Cells(34, 5)
      s1 = s1 / a
      s11 = s11 / (a + 1)
      s2 = s2 / a
      s22 = s22 / (a + 1)
      s3 = s3 / a
      s33 = s33 / (a + 1)
      s4 = s4 / a
      s44 = s44 / (a + 1)
        
      If (.Range("B34:E34").HasFormula = True Or .Range("B35:E35").HasFormula = True) And (.Range("B34:B34").Value = s1 Or .Range("B35:B35").Value = s11) And (.Range("E34:E34").Value = s4 Or .Range("E35:E35").Value = s44) Then
        Score = Score + 5
        Else
        ef = ef & "第4题计算平均值错误" & vbCrLf
      End If
      If .Range("G20:G33").HasFormula = True And UCase(.Range("g20:g20").Formula) = UCase("=b20/f20") And UCase(.Range("g33:g33").Formula) = UCase("=b33/f33") Then
    
        Score = Score + 5
        Else
        ef = ef & "第4题计算百分比错误" & vbCrLf
      End If
      If InStr(1, .Range("B34:E34").NumberFormatLocal, "0.00_") > 0 Or InStr(1, .Range("B35:E35").NumberFormatLocal, "0.00_") > 0 Then
        Score = Score + 5
        Else
        ef = ef & "第4题平均值保留两位小数错误" & vbCrLf
      End If
      If Range("G20:G33").NumberFormatLocal = "0.00%" Then
         Score = Score + 5
         Else
         ef = ef & "第4题百分比保留两位小数错误" & vbCrLf
      End If
      
      '题目5
       With .Range("A19:G35")
       If .Borders(xlEdgeLeft).LineStyle = xlContinuous And .Borders(xlEdgeLeft).Weight = xlThin And .Borders(xlEdgeLeft).ColorIndex = 5 Then
          Score = Score + 5
          Else
          ef = ef & "第5题设置表格线错误" & vbCrLf
       End If
       End With
      
      '题目6
      If .Rows(19).RowHeight = 25 Then
        Score = Score + 5
        Else
        ef = ef & "第6题设置行高错误" & vbCrLf
      End If
      If .Range("A19:G19").Interior.ColorIndex = 33 Then
        Score = Score + 5
        Else
        ef = ef & "第6题设置19行单元格底纹颜色错误" & vbCrLf
      End If
      
      '题目7
       If .Range("A32:a32").Value = "采掘业" And .Range("B32:B32").Value = 0 And .Range("C32:C32").Value = 3 And .Range("A21:A21").Value = "制造业" Then
        Score = Score + 5
        Else
        ef = ef & "第7题排序错误或者其它原因引起此题批改错误" & vbCrLf
      End If
      If Sheet2.Range("A4:A4").Value = "批发和零售贸易、餐饮业" And Sheet2.Range("A5:A5").Value = "制造业" And Sheet2.Range("A6:A6").Value = "社会服务业" Then
        Score = Score + 5
        Else
        ef = ef & "第7题排序或者复制数据错误" & vbCrLf
      End If
      
      If Sheet2.Name = "3强" Then
         Score = Score + 5
         Else
         ef = ef & "第7题sheet2改名错误" & vbCrLf
      End If
      '题目8
      FLAG = True
      For i = 5 To 20
        If i <> 7 And i <> 12 Then
           If Sheet3.Rows(i).RowHeight <> 0 Then
              FLAG = False
              Exit For
           End If
        End If
      Next i
      If FLAG = True Then
          Score = Score + 5
          Else
          ef = ef & "第8题筛选错误" & vbCrLf
      End If
      
      '题目9
     FLAG = True
     If Sheet4.ChartObjects.Count <> 0 Then
       If Sheet4.ChartObjects(1).Chart.ChartType = xlColumnStacked Then
         Score = Score + 2
         Else
         FLAG = False
       End If
       If Sheet4.ChartObjects(1).Chart.SeriesCollection(1).Formula = "=SERIES(Sheet4!$G$5,Sheet4!$B$6:$B$20,Sheet4!$G$6:$G$20,1)" Then
         Score = Score + 2
         Else
         FLAG = False
       End If
       If Sheet4.ChartObjects(1).Chart.HasTitle = True Then
        If Sheet4.ChartObjects(1).Chart.ChartTitle.Characters.Text = "合计分析图" Then
         Score = Score + 2
          Else
         FLAG = False
       End If
       Else
         FLAG = False
       End If
      
        If Sheet4.ChartObjects(1).Chart.PlotBy = xlColumns Then
         Score = Score + 2
          Else
         FLAG = False
       End If
       If Sheet4.ChartObjects(1).Top > Sheet4.Range("B23:B23").Top And Sheet4.ChartObjects(1).Top < Sheet4.Range("B24:B24").Top And _
       Sheet4.ChartObjects(1).Left > Sheet4.Range("B23:B23").Left And Sheet4.ChartObjects(1).Left < Sheet4.Range("C23:C23").Left And _
       Sheet4.ChartObjects(1).Height > Sheet4.Range("B40:B40").Top - Sheet4.Range("B24:B24").Top And Sheet4.ChartObjects(1).Height < Sheet4.Range("B41:B41").Top - Sheet4.Range("B23:B23").Top And _
       Sheet4.ChartObjects(1).Width > Sheet4.Range("H23:H23").Left - Sheet4.Range("B24:B24").Left And Sheet4.ChartObjects(1).Width < Sheet4.Range("I23:I23").Left - Sheet4.Range("B23:B23").Left Then
         Score = Score + 2
          Else
         FLAG = False
       End If
       End If
       If FLAG = False Or Sheet4.ChartObjects.Count = 0 Then
         ef = ef & "第9题建立图表有错误"
       End If
  End With
 PgCount = PgCount + 1
 MsgBox "你的成绩为: " & Score & vbCrLf
 'a = MsgBox(ef, , "错误信息")

Excel 中自动阅卷的实现相关推荐

  1. HTML如何实现单元格自动编号,如何在Excel中自动为列编号?

    如何在Excel中自动为列编号? 您是否曾经想过在Excel中对列进行编号? 本教程将讨论一些对列进行编号的方法. 通过公式= ROW()自动编号​​一列 如果要根据行号对列进行编号,可以键入此公式 ...

  2. 计算机excel怎么添加实线边框,Excel中自动添加边框线条的方法!学会效率翻倍!你确定不学?...

    原标题:Excel中自动添加边框线条的方法!学会效率翻倍!你确定不学? 平常大家在工作中,有时候是不是需要给Excel表格加上边框啊?那么今天我们就来聊聊Excel表格添加边框线条那些事. 大家给Ex ...

  3. 计算机函数中数与数之间的冒号,如何在数字之间插入冒号以使其在Excel中自动成为时间格式?...

    如何在数字之间插入冒号以使其在Excel中自动成为时间格式? 当您在工作表单元格中插入时间格式时,您是否曾经每次输入冒号都感到烦恼? 在本文中,我将讨论在输入数字以使其在Excel中自动成为时间格式时 ...

  4. 如何在Excel中自动创建报告 Excel中自动创建报告的方法

    如何在Excel中自动创建报告 Excel中自动创建报告的方法,Excel工作表中存储的数据,可以使用宏来一键创建报告并导出为不同的文件类型.Excel自带步骤记录器,因此你不需要自己编写宏.小编在这 ...

  5. excel中自动填充到最后一行

    excel中如果中间没有空行,通过双击黑色十字可自动填充到最后一行,但如果数据中间空行多并且数据多,双击黑色十字只可以填充到空行前面的一行. 这时,可使用ctrl+enter组合键实现自动填充. 1. ...

  6. excel中提取月份_在Excel中自动添加月份表

    excel中提取月份 Set up a Master sheet in your workbook, and add month sheets automatically, based on that ...

  7. Excel中自动按照货物名称实现结余累计的示例

    日常生活中,购入消耗货物常运用Excel进行相关统计,能不能实现自动统计出某类货物的结余情况呢?能.示例如下: Private Sub Worksheet_Change(ByVal Target As ...

  8. excel中自动统计计算方法

    C                 D           E 正常 非法 56 1970 0.971573604 55 16612 0.99668914 2 72 0.972222222 7 83 ...

  9. excel中自动填充很多行

    当在EXCEL中有多行需要自动填充时,例如从B1-B5000填充公式=(A1-15)/1000, 可以先选择B1,即填充内容,Ctrl+C: 然后,选择B2,将表格拉至B5000位置,按住shift键 ...

最新文章

  1. iis7.5配置.net mvc注意事项
  2. 用TensorFlow实现自编码器Autoencoders
  3. 百度造车和RoboTaxi利好自动驾驶?不,利好茅台
  4. mysql安全配置基线_MySql数据库安全配置基线.doc
  5. linux基础知识复习
  6. 多目标机器学习_NIPS2018 - 用多目标优化解决多任务学习
  7. nginx优化-nginx事件处理模型优化use epoll;
  8. .net core依赖注入的封装
  9. Understanding node.js
  10. python自动化入门操作文档,写得如此清晰明了,忍不住让人点赞
  11. Shell整数型变量自增自减的实现方式(+1,-1,++,--)
  12. iOS.ObjC.Basic-Knowledge
  13. 吴恩达机器学习(十二)主成分分析(降维、PCA)
  14. 这些假脸实在太逼真了!英伟达造出新一代GAN,生成壁纸级高清大图毫无破绽...
  15. 输入一个年份,并判断是否为闰年
  16. vuetify-icon图标显示不正常
  17. 小白笔记LM2596
  18. matlab实现幂法迭代求特征值和特征向量
  19. C#:TopK:1万个数取前最大的100,堆排序
  20. 【回顾】基于树莓派下的4G模块(EC200U-CN)实现远程控制短信的收发

热门文章

  1. 如何在手机上查看网页源码
  2. python dataframe索引字段相同的合并_Pandas DataFrame-将具有相同索引的列的值合并到lis中...
  3. Win7系统64位环境下使用Apache——下载mod_jk
  4. 用微信app发布一条朋友圈的逻辑流程图是怎样的?
  5. SpringBoot -- Time
  6. 手机上网流量统计_上半年手机上网流量超552亿GB,你每个月贡献多少?????
  7. 闲来无事,20 分钟水了一个贷款计算器(Chatgpt 协助下),发现了房贷的 3 个秘密
  8. 使用Systemback工具克隆Ubuntu18.04系统
  9. 【NLP】Python实例:基于文本相似度对申报项目进行查重设计
  10. bat脚本实现按照月份对文件自动归档备份功能