2-考试成绩查询(2.1-2.4)|世界热点评

2023-07-03 12:57:50 来源:个人图书馆-asaser

2.1-项目介绍

2.2-基本概念介绍


(资料图片仅供参考)

2.3-逻辑思路

2.4-代码

2.5-看代码前的几个基础知识

2.5.1-Sub过程

2.5.2-工作簿-工作表-单元格

2.5.3-工作表某列最大行

2.5.4-顺序-循环-判断

2.5.5-数据类型

2.6-本章示例代码详解

2.6.1-代码结构解析

2.6.2-代码中文解析

2.6.3-思考及延伸

2.7-本章小结

-------------------------------------------------------------

2.1-项目介绍

引言

对于正在学习VBA的你,用实际案例去学习是一个非常好的方法。对于非专业科班选手,我们学习VBA更多的意义是在于能够用于实际工作过程中,用以提升工作效率等。所以首先我们能够理解具体的业务,知道如何手动去实现它,接下来只是将手动的工作采用VBA将其自动化而已,这样学习难度会大大降低,也会更加形象具体,不会空洞无聊。

本章引入一个小项目,考试成绩查询,不需要去讨论文中的方法是不是最好的,能够理解这个小项目即可,因为这个项目的意义在于借助它去学习VBA。

已知有4张表,如图2-1所示,语文、数学、英语,里面分别记录个学员的成绩,如图2-1所示。在成绩查询界面工作表输入姓名即可以获取到该学员的三科目的成绩,成绩查询界面工作表如图2-2所示。语文、数学、英语3张表格式一样,如图2-3所示。

图2-1 工作表分布
图2-2 成绩查询界面

图2-3 语文成绩表

-------

2.2-基本概念介绍

在开始编程之前,介绍点基础知识。

在Excel中有3个重要的概念务必要了解:

工作簿:指Excel文件,通过文件名称定位

工作表:就是如上面所介绍的语文、数学、英语这样的表,一个Excel工作簿(文件)可能含有多个工作表,通过表名定位

单元格:工作表是由一个一个单元格组成的,每一行每一列定位一个单元格,如图2-4所示。横向为行号,一般采用1,2,3,4…计数;竖向为列号,一般采用A,B,C,D…计数

图2-4 单元格

在图2-2中我们可以看到一个成绩查询按钮,我们写完代码后,肯定不希望每次都要去后台VBE去执行,太麻烦了。创建一个按钮,然后关联后台的代码,以后点击按钮即可运行对应程序。

创建按钮方法: 菜单开发工具-插入-点击按钮图标-在单元格区域按住左键画一个矩形-释放左键-弹出窗口点击确定即可,稍后再关联代码,如图2-5所示。右键选中该控件(这里指新创建的按钮),在弹出的菜单中可以设置控件格式。

图2-5 插入按钮控件
2.3-逻辑思路

在成绩查询界面B1单元格输入学生姓名,点击按钮成绩查询,即可获取到该位同学的三科成绩,结果如图2-6所示。

图2-6 成绩查询结果

基本实现逻辑如下:

获取拟查询学生姓名

在语文工作表中的B列查找拟查找姓名,获取行号,进而获取同一行号C列的内容,即该学员的语文成绩

将查到的语文成绩写入成绩查询界面工作表的B4单元格

同理,分别查找到数学成绩、英语成绩,并写入B5、B6单元格

2.4-代码

Sub 成绩查询()

Set shtUI = ThisWorkbook.Worksheets("成绩查询界面")

searchName = shtUI.Range("B1")

"查询语文成绩

Set shtYuwen = ThisWorkbook.Worksheets("语文")

maxRow = shtYuwen.Cells(Rows.Count, "B").End(xlUp).Row

For i = 2 To maxRow Step 1

studentName = shtYuwen.Cells(i, "B")

If searchName = studentName Then

score = shtYuwen.Cells(i, "C")

"将成绩返回首页

shtUI.Range("B4") = score

End If

Next i

"查询数学成绩

Set shtShuxue = ThisWorkbook.Worksheets("数学")

maxRow = shtShuxue.Cells(Rows.Count, "B").End(xlUp).Row

For i = 2 To maxRow Step 1

studentName = shtShuxue.Cells(i, "B")

If searchName = studentName Then

score = shtShuxue.Cells(i, "C")

"将成绩返回首页

shtUI.Range("B5") = score

End If

Next i

"查询英语成绩

Set shtYingyu = ThisWorkbook.Worksheets("英语")

maxRow = shtYingyu.Cells(Rows.Count, "B").End(xlUp).Row

For i = 2 To maxRow Step 1

studentName = shtYingyu.Cells(i, "B")

If searchName = studentName Then

score = shtYingyu.Cells(i, "C")

"将成绩返回首页

shtUI.Range("B6") = score

End If

Next i

End Sub

以上代码写在一个模块中(模块创建:VBE界面中,插入菜单-模块),如图2-7所示。写完代码以后,右键点击成绩查询界面工作表中的成绩查询按钮,在弹出的窗口中选择指定宏,进而在图2-8的窗口中关联后台的VBA代码。这样以后执行代码时,只要点击该按钮即可,对于不懂代码的人,也可以使用该功能。

图2-7 VBE界面VBA代码
图2-8 按钮关联VBA代码
标签:

2-考试成绩查询(2.1-2.4)|世界热点评

2023-07-03

消息!济宁市学习贯彻习近平新时代中国特色社会主义思想主题宣讲基层行活动启动

2023-07-03

惠农网:第25周排名前15农产品品类市场关注度“7涨2平6跌”|全球速看

2023-07-03

香港汇丰投资管理梅立中最新发声:投资级亚债看高一线 今日报

2023-07-03

容智信息荣获2023第三届中国RPA+AI开发者大赛多项大奖|全球信息

2023-07-03

西藏天路7月3日盘中涨幅达5%_环球观点

2023-07-03

通州“张謇故事大家谈”系列活动收官

2023-07-03

国家能源局:​“十四五”期间央地联动支持海上风电发展 世界快看点

2023-07-03

当前资讯!河北省成立氢能产业创新联合体 机构称氢能产业化进程加速

2023-07-03

【天天聚看点】6月30日LME基本金属库存统计

2023-07-03

各种面料知识,服装人必看

2023-07-03

壶口瀑布“砌墙挡景”?官方回应:已拆除

2023-07-03

欧美转向希望破灭 新兴市场重获华尔街青睐

2023-07-03

全球热推荐:深研水产繁育 打造“蓝色粮仓”

2023-07-03

为环湖赛预热!第十二届文峰碑山地自行车越野赛圆满举行

2023-07-03

民主改革60年·文献资料卷 关于民主改革60年·文献资料卷介绍

2023-07-03

蔡妍演唱会视频_蔡妍禁播mv_天天速看

2023-07-03

北碚遭受灾情影响的村民均已妥善安置

2023-07-03

全球观天下!汽车设计大师Peter Horbury逝世

2023-07-02

每日热点:为了千家万户,他们选择在高温下坚守

2023-07-02

工厂仓库管理常用软件有哪些?

2023-07-02

天天热议:菏泽发布重要天气预报:短时强降水+雷雨大风

2023-07-02

书到用时方恨少的原诗_书到用时方恨少 当前视点

2023-07-02

西班牙称将很快向乌交付新重型装备_天天热消息

2023-07-02

伪装歌词是什么意思_伪装歌词是什么

2023-07-02

今日热议:河北广瑞牧业有限公司

2023-07-02

世界即时:高温“烤”验,如何安然度过

2023-07-02

世界最资讯丨新疆伊犁州霍城县发生3.3级地震,震源深度20千米

2023-07-02

环球快资讯丨中科院全球首创AI全自动CPU A股哪些板块值得关注?

2023-07-02

【世界速看料】台媒曝陈建州曾疑偷拍大牙 女方穿热裤整理妆发

2023-07-02

Copyright ©  2015-2023 京津冀频道网版权所有  备案号:京ICP备2022022245号-12   联系邮箱:434 922 62 @qq.com