山东水利技师学院,山东 淄博 255013
摘要:学校组织的运动会报名工作是一项繁琐的工作,本文给出了一种以VBA编程为基础的Excel格式的报名表,可大大提高工作效率。
关键词: 运动会报名表;VBA编程;高效
在每一个学校,一年一度的田径运动会算是参与学生人数最多、最受关注的一次体育盛会了,运动会的报名工作也随之成了一项较为繁琐的工作。Excel是目前应用非常普遍的办公软件之一,其强大的数据处理、图表展现、直观易用的特性深受广大用户的好评。现在我们来设计一种以Excel电子表格为基础、以函数和VBA编程[1]为辅助的运动会报名表,利用该报名表可以按照要求对报名信息进行审核,以方便高效的完成报名工作。
报名表中有一部分基本信息,如所属系部、比赛类别、性别等我们可以利用下拉列表的形式来进行设计,我们以系部为例来进行说明,这个可用“数据有效性”中的设置序列来实现,如下图所示,此时要注意各系部名称间的分隔符应为英文状态的逗号。
(图1)
一般情况下,每个学校在进行比赛项目时,男生、女生的比赛项目会有所不同的,为此我们在报名表中作如下的设计,报名时,当选择了性别之后,自动在其后面的表格中给出与其性别相对应的比赛项目。实现方法如下:
我们先在另一张工作表中输入男生、女生的比赛项目,如下图所示:
(图2)
选中男子比赛项目(选择范围从“100米”单元格至“三级跳远”单元格),然后点击“数据”菜单中的“定义名称”命令,弹出下图所示的对话框:
(图4)
其中“性别”字段下的单元格利用数据有效性中的设置序列实现下拉式选择,然后把“项目一”字段也利用该方法进行设置,其中“来源”框中输入表达式:=INDERECT(C11)。
(图5)
C11单元格中为性别,此时利用INDERECT函数即可实现根据性别自动列出比赛项目的功能。
学生填写完报名表后,应对报名信息是否符合要求进行检查,这里我们利用VBA编程来实现。
首先我们在报名表的一侧添加两个按钮“帮助”和“生成报表”,点击“帮助”按钮可显示帮助信息,如下图所示:
(图6)
我们在“生成报表”按钮的Click事件中实现对报名信息的审核。
利用代码检查必填内容是否填写,例如检查“系部”所填内容是否为空:
If Trim(Cells(1, 2)) = "" Then
MsgBox "系部 不能为空!", , "提示"
Exit Sub
End If
每个班级中报名运动员的学号不能重复,可用以下代码来进行检查:
For i = 1 To a1 '把报名者的学号赋给数组b
b(i) = Trim(Cells((10 + i), 1))
Next i
For i = 1 To a1 - 1
For j = i + 1 To a1
If b(i) = b(j) Then
MsgBox "学号中不允许有重复的,请修改后重新点击‘生成报表’按钮!", , "提示"
Exit Sub
End If
Next j
Next i
在运动会中为控制报名人数会对每个班级各个项目的报名人数进行限制,我们以每个运动员最多报三个单人项目、每个项目每个班级最多只能报三人为例来进行说明。其中每个运动员最多只能报三个单人项目在报名表的设计中已经实现(见图4)。下面我们以检查班级男子100米的报名人数为例来介绍以下代码的设计:
声明三个数组分别来保存每个运动员所报的比赛项目一、比赛项目二和比赛项目三:
Dim xm1() as string
Dim xm2() as string
Dim xm3() as string
利用循环语句依次把每个运动员所报的三个比赛项目保存到三个数组中:
For i = 1 To a1
xm1(i) = Trim(Cells((10 + i), 4))
xm2(i) = Trim(Cells((10 + i), 5))
xm3(i) = Trim(Cells((10 + i), 6))
Next i
用下面的代码对报男子100米的人数进行统计:
For i = 1 To a1
If xb(i) = "男" Then
If xm1(i) = "100米" Then
t100 = t100 + 1
End If
If xm2(i) = "100米" Then
t100 = t100 + 1
End If
If xm3(i) = "100米" Then
t100 = t100 + 1
End If
。。。
End if
Next i
If t100 > 3 Then
MsgBox "男子100米限报3人,现有" & t100 & "人报该项目,请修改", , "提示"
Exit Sub
End If
至此主要代码部分已经介绍完毕,大家可以根据需要补充和完善实现其他功能的代码。
Excel是一个应用非常广泛、十分便利的办公软件,如果我们能熟练掌握函数和VBA的用法,将使Excel变得更智能,能大大的提高Excel的应用深度和广度,从而进一步提高工作效率和减少劳动强度。
参考文献:
[1]《Excel2003高级VBA编程宝典》,[美]John Walkenbach著
------------
论文作者:鹿建国
论文发表刊物:《科技中国》2017年2期
论文发表时间:2017/5/3
标签:比赛项目论文; 报名表论文; 运动会论文; 性别论文; 运动员论文; 代码论文; 所示论文; 《科技中国》2017年2期论文;