《梦醒蝶飞:释放Excel函数与公式的力量》20.2 教学材料的自动化处理

 第20章:自动化教学辅助工具

 20.2 教学材料的自动化处理

自动化处理教学材料是利用编程技术和工具,自动执行教学材料的生成、整理和分发等任务的过程。通过自动化,可以提高教学材料处理的效率,减少手动操作的时间,从而让教师有更多的时间专注于教学本身。以下将介绍教学材料自动化处理的基本概念,并通过具体案例进行说明。

20.2.1 教学材料自动化处理的优势

1. 提高效率:自动化处理可以快速生成和整理大量教学材料。

2. 减少错误:通过自动化流程,可以减少人为错误,提高材料的准确性。

3. 一致性:自动化生成的材料格式一致,便于管理和分发。

4. 节省时间:自动化处理节省了手动操作的时间,让教师能够专注于教学和学生互动。

20.2.2 使用Excel和VBA进行自动化处理

Excel和VBA是处理教学材料的强大工具。通过编写VBA代码,可以自动生成课件、整理学生成绩、分发作业等。下面通过一个案例来演示如何自动生成学生成绩单。

案例素材

案例背景:某学校需要自动生成每个学生的成绩单,成绩单包括学生的姓名、各科成绩、总成绩和平均成绩。我们将使用Excel和VBA编写一个自动化脚本,生成这些成绩单。

示例数据

 编写VBA脚本

1. 启动VBA编辑器:

选择“开发工具”选项卡,点击“Visual Basic”按钮。

2. 创建新模块:

在VBA编辑器中,选择“插入” -> “模块”。

3. 编写VBA代码:

    Sub GenerateReportCards()

        Dim ws As Worksheet

        Dim lastRow As Long

        Dim i As Long

        Dim reportWs As Worksheet

        Dim studentName As String

        Dim fileName As String

        ' 设置数据工作表

        Set ws = ThisWorkbook.Sheets("Sheet1")

        lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

        ' 遍历每个学生的数据

        For i = 2 To lastRow

            studentName = ws.Cells(i, 1).Value

            ' 创建新的成绩单工作表

            Set reportWs = ThisWorkbook.Sheets.Add

            reportWs.Name = studentName & "成绩单"

            ' 填写成绩单内容

            reportWs.Cells(1, 1).Value = "学生姓名"

            reportWs.Cells(1, 2).Value = studentName

            reportWs.Cells(2, 1).Value = "语文"

            reportWs.Cells(2, 2).Value = ws.Cells(i, 2).Value

            reportWs.Cells(3, 1).Value = "数学"

            reportWs.Cells(3, 2).Value = ws.Cells(i, 3).Value

            reportWs.Cells(4, 1).Value = "英语"

            reportWs.Cells(4, 2).Value = ws.Cells(i, 4).Value

            reportWs.Cells(5, 1).Value = "总成绩"

            reportWs.Cells(5, 2).Formula = "=SUM(B2:B4)"

            reportWs.Cells(6, 1).Value = "平均成绩"

            reportWs.Cells(6, 2).Formula = "=AVERAGE(B2:B4)"

           

            ' 格式化成绩单

            With reportWs.Range("A1:B6")

                .Font.Name = "Arial"

                .Font.Size = 12

                .HorizontalAlignment = xlCenter

                .VerticalAlignment = xlCenter

                .Borders.LineStyle = xlContinuous

            End With

            ' 自动调整列宽

            reportWs.Columns("A:B").AutoFit

            ' 保存成绩单为新的工作簿

            fileName = ThisWorkbook.Path & "\" & studentName & "成绩单.xlsx"

            reportWs.Copy

            ActiveWorkbook.SaveAs Filename:=fileName, FileFormat:=xlOpenXMLWorkbook

            ActiveWorkbook.Close SaveChanges:=False

           

            ' 删除临时成绩单工作表

            Application.DisplayAlerts = False

            reportWs.Delete

            Application.DisplayAlerts = True

        Next i

        MsgBox "所有学生的成绩单已生成并保存!", vbInformation

    End Sub

4. 运行VBA脚本:

返回Excel界面,选择“开发工具”选项卡,点击“宏”按钮。

选择“GenerateReportCards”,点击“运行”。

运行结果

详细解释

1. 设置数据工作表:

    Set ws = ThisWorkbook.Sheets("Sheet1")

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

   Set ws = ThisWorkbook.Sheets("Sheet1") 设置当前工作表为数据工作表。

   lastRow变量获取数据的最后一行行号。

2. 遍历每个学生的数据:

    For i = 2 To lastRow

        studentName = ws.Cells(i, 1).Value

3. 创建新的成绩单工作表:

et reportWs = ThisWorkbook.Sheets.Add

    reportWs.Name = studentName & "成绩单"

4. 填写成绩单内容:

    reportWs.Cells(1, 1).Value = "学生姓名"

    reportWs.Cells(1, 2).Value = studentName

5. 计算总成绩和平均成绩:

    reportWs.Cells(5, 1).Value = "总成绩"

    reportWs.Cells(5, 2).Formula = "=SUM(B2:B4)"

   

    reportWs.Cells(6, 1).Value = "平均成绩"

    reportWs.Cells(6, 2).Formula = "=AVERAGE(B2:B4)"

6. 格式化成绩单:

    With reportWs.Range("A1:B6")

        .Font.Name = "Arial"

        .Font.Size = 12

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlCenter

        .Borders.LineStyle = xlContinuous

    End With

7. 保存成绩单为新的工作簿:

    fileName = ThisWorkbook.Path & "\" & studentName & "成绩单.xlsx"

    reportWs.Copy

    ActiveWorkbook.SaveAs Filename:=fileName, FileFormat:=xlOpenXMLWorkbook

    ActiveWorkbook.Close SaveChanges:=False

    ```

8. 删除临时成绩单工作表:

    Application.DisplayAlerts = False

    reportWs.Delete

    Application.DisplayAlerts = True

小结

通过编写和运行VBA脚本,用户可以自动生成和处理教学材料,提高工作效率并减少人为错误。掌握VBA编程技术,可以显著提升教学材料处理的自动化水平,为教学和管理提供有力的支持。在教育领域,自动化处理教学材料工具能够帮助教师更高效地管理学生成绩和教学数据,提供更好的教学体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1487656.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

用Swagger进行后端接口测试的实战操作

目录 一.什么是Swagger? 二.Swagger的使用操作流程: 1.在pom.xml配置文件导入 Knife4j 的依赖: 2.在config配置类中加入 Knife4j 的相关配置并设置静态资源映射(否则接口文档无法访问): 三.Swagger的四个…

InteliJ IDEA最新2024版下载安装与快速配置激活使用教程+jdk下载配置

第一步:下载ideaIC-2024.1.4 方法1:在线链接 IntelliJ IDEA – the Leading Java and Kotlin IDE (jetbrains.com) 选择社区版进行下载 方法2:百度网盘 链接:https://pan.baidu.com/s/1ydS6krUX6eE_AdW4uGV_6w?pwdsbfm 提取…

解决django与sqlite3不兼容报SQLite 3.9.0 or later is required错的问题

今天在尝试用pytest进行django的单元测试,pytest用的数据库是sqlite3,在window环境下测试得好好的,但是放到linux环境下就报错,具体是报django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found …

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据

带分隔符的字符串很好处理,只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为: 函数选板->字符串->附加字符串函数->分…

超声波俱乐部:AI应用大爆发前夜,场景、闭环与LLM进化

7月13日,第十九期超声波俱乐部内部分享会在北京望京举行,本期的主题是:AI应用大爆发前夜,场景、闭环与LLM进化。 到场的嘉宾有:超声波创始人杨子超,超声波联合创始人、和牛商业创始人刘思雨,豆…

html+css 边框滑动按钮效果

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…

基于 HTML+ECharts 实现智慧工地数据可视化大屏(含源码)

构建智慧工地数据可视化大屏:基于 HTML 和 ECharts 的实现 智慧工地已成为建筑行业的新趋势。通过实时监控和数据分析,智慧工地可以提高施工效率、降低安全风险。本文将详细介绍如何利用 HTML 和 ECharts 实现一个功能强大的智慧工地数据可视化大屏。 源…

vue3前端开发-小兔鲜项目-sku的实现

vue3前端开发-小兔鲜项目-sku的实现!这是一个会计学的特殊专业名词,可以理解为产品的型号,规格的货品计量单位。 它是一组数据的混合体。比如:尺寸,材料,品质,等等。组合在一起形成的一个混合数…

pikachu Fileinclusion(local)

随便选择一个都试试 发现url上数字会变 发现文件名确实是file1.php~file5.php 那么会不会还有别的burp抓包选中数字 设置6-100的爆破 strat attack 678异常还有个100也是 先改一下试试看 其他的会报错 但是通过这我们可以得到路径 先写一个 下一步 读取系统文件 windows系统肯定…

产品系统的UI暗色系和浅色系模式切换是符合人体视觉工程学的设计

视觉革命:UI设计中的暗夜与黎明 UI设计如同夜空中最亮的星辰,引领着用户穿梭于信息的海洋。而今,一场视觉革命正在悄然上演,它关乎于我们的眼睛,关乎于我们的体验——那就是产品系统的UI暗色系和浅色系模式的切换。如…

Git merge

Git merge 参考文档: https://marsishandsome.github.io/2019/07/Three_Way_Merge https://git-scm.com/docs/merge-strategies https://stackoverflow.com/questions/56889406/how-does-git-compare-two-files-while-merging Git merge的目标是合并changes&#x…

web小项目-曼波生日录(Servlet+JSP+MySQL)

效果演示: 当记录条数过多时会自动出现滚轮,数据不会超出紫框 数据库实时记录: 项目源代码以及所用到的资源: 链接: https://pan.baidu.com/s/1w0czmH9xBfetk7CZ7RNbtQ?pwd6666 提取码: 6666 复制这段内容后打开百度网盘手机App…

vue3+openLayers点击标记事件

<template><!--地图--><div class"distributeMap" id"distributeMap"></div> </template> <script lang"ts" setup> import { onMounted, reactive } from "vue"; import { Feature, Map, View }…

一款允许使用Docker部署本地托管的、基于 Web 的 PDF 操作工具

大家好&#xff0c;今天给大家分享的是一个基于Spring Boot开发的开源项目&#xff0c;旨在提供一个功能强大的基于Docker的本地托管PDF操作工具Stirling PDF。 项目介绍 Stirling-PDF是一个全面的PDF工具箱&#xff0c;适用于个人和企业用户&#xff0c;尤其对于那些重视数据…

华杉研发九学习日记17 正则表达式 异常

华杉研发九学习日记17 一&#xff0c;正则表达式 ^ $ 作用&#xff1a; 测试字符串内的模式(匹配) 例如&#xff0c;可以测试输入字符串&#xff0c;以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证. 替换文本&#xff08;替换》 可以使用正则表达式来…

谷粒商城实战笔记-59-商品服务-API-品牌管理-使用逆向工程的前后端代码

文章目录 一&#xff0c; 使用逆向工程生成的代码二&#xff0c;生成品牌管理菜单三&#xff0c;几个小问题 在本次的技术实践中&#xff0c;我们利用逆向工程的方法成功地为后台管理系统增加了品牌管理功能。这种开发方式不仅能快速地构建起功能模块&#xff0c;还能在一定程度…

Elasticsearch 7.x入门学习-Java API操作

1 创建项目 在idea开发工具中创建Maven项目 修改 pom 文件&#xff0c;增加 Maven 依赖关系 <dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</versi…

MySQL学习(13):SQL优化:查看SQL语句性能的方法

1.查看SOL执行频率 MySQL客户端连接成功后&#xff0c;通过如下指令&#xff0c;可以查看当前数据库的insert、update、delete、select的访问频次: show global status like Com_______; #查看全局。后面是7个下划线 使用效果如下&#xff1a; 可以看到各条命令的使用次数。…

springboot 多个jar下有相同全限定名类加载顺序

一、问题说明 项目中使用了密码机&#xff0c;应用系统需要集成密码机厂商的jar包。应用系统支持使用不同厂家的密码机&#xff0c;并且为了保证应用层代码不受影响&#xff0c;要求密码机厂商提供相同的类定义&#xff08;全限定名&#xff09;&#xff0c;但不同密码机厂商提…

华为ensp中ISIS原理与配置(超详细)

isis原理与配置 8-20字节&#xff1b; 地址组成&#xff1a;area id&#xff0c;system id&#xff0c;set三部分组成&#xff1b; system id占6个字节&#xff1b;sel占一个&#xff0c;剩下的为area id区域号&#xff1b; system id 唯一&#xff0c; 一般将router id 配…