|
网上时上有老师提问如何用excel排课,诚然,excel电子表格是一个非常优秀的数据处理软件,略懂电脑的人都会用,因此,利用广为使用的excel排课的确不失为一个方向,Excel中大量的函数和vba宏都为排课提供了可能。
不过,当许多老师都兴致勃勃地想用excel排课时,发现有很多难处,归纳以下几点:
1、 排课必须有一些基本设置,如年级、开设的课程、各年级上课的课时,这些基础数据如何保存,又如何存取?
2、 一些科目的禁排、个人上课课时禁排、固定上课课时设置又如何保存、如何存取?
3、 排课时,如何自动排出最佳上课安排?排课后,对不满意的课节改动又如何规避冲突?如何保存排课的结果?
4、 打印课表时,如何从保存的课表中提取出数据并按照课表的格式填充以便打印美观?
因此,用excel排课,首先要解决数据的存取问题,然后才是通过排课界面来处理自动化排课。
在自动化排课上,也许有的同学说,通过工作表函数公式来处理,显然,函数在处理成千上万个数据的计算上,力不从心,再好的电脑也会崩溃。因此,少量的自动计算,可以用工作表函数,但别指望多用,最好的办法还是VBA。VBA在处理计算在大多情况下,计算一次得到结果,并不因数据源变化而自动重复计算,因些,可有效提高运行速度和效率。更何况,利用按钮进行操作,有的放失地控制电脑进行自动计算,这是工作表函数公式无法做到的。
本人的excel排课软件制作思路是,
一、 通过一些指定名称的sheet表来存储一些基础设置。如年级设置、各年级开设课程及每周课数设置、上课课时设置、科目禁排设置、个人上课禁排课时设置、固定上课课时设置等。
二、 通过指定名称的sheet表来存储各班分课。当然,为了分课不出错,本表需要与“基础设置”表中的年级课程设置关联,即数据有效性必须是“各年级开设课程及每周课数设置”
三、 通过二个专门的sheet,一个用来排课,一个用来保存排课结果。排课自动化处理时,无非是从“保存过的课表”中外提取未安排的课节到当前排课表中,抑或是修改已经保存过的课节等等,至于怎么设计,需要有一定的VBA功底多思考才能找到恰当的方法,但大致思路就是这样。
四、 专门设置几个sheet,分别制作固定的格式,然后通过VBA或函数公式提取“全校课表、班级课表、个人课表、场地课表”等等。 |
|