Excel排课系统,教你一个VBA编程课程编排制作方法

No.1

学校工作中,排课是一项基本的工作。

一个高效的排课管理,可以使教学工作快速有序进行。

本节介绍一个简单的排课管理方法,以Excel vba 为软件平台进行自动化编辑处理。

上图为排课结果,以及查询页。

单击任意列表框内容,可以方便查看其关键字段的排课情况。

上图为排课操作页。

选择教师、班级、课程等内容,确定便可。

操作十分简单。

如此简单的原因,背后有一些代码支持其正确处理数据。

下文有一些代码,供参考学习。

下图为课程表,可以查看某一班级,某个日期排课情况。

No.2

选择一些代码,做个示范。

添加排课:

Private Sub CommandButton1_Click()Dim S As WorksheetSet S = ThisWorkbook.Worksheets('teaching')Dim R As RangeSet R = S.UsedRangeSet R = R.Offset(1, 0).Resize(R.Rows.Count - 1, R.Columns.Count)Dim ArrXArrX = Range('C2:C6').ValueS.ActivateDim i As Integer, n As Integer, InOut As Booleann = R.Rows.CountInOut = FalseFor i = 1 To n If ArrX(2, 1) = R.Cells(i, 3).Value _ And ArrX(3, 1) = R.Cells(i, 4).Value _ And ArrX(4, 1) = R.Cells(i, 5).Value _ And ArrX(5, 1) = R.Cells(i, 6).Value Then '3找到班级 判断课程 '5找到课程 判断课时 '4找到课时 判断星期 InOut = True Exit For End IfNext iIf InOut Then MsgBox '已经设置成功!', vbInformation, '提示'Else SetCurr ArrX, R '调用过程 添加排课内容 MsgBox '排课成功!', vbInformation, '提示'End IfEnd Sub

添加排课过程:

Private Sub SetCurr(ArrX, Rx) '添加排课With Rx.Offset(Rx.Rows.Count, 1).Resize(1, Rx.Columns.Count - 1)    .Value = Application.WorksheetFunction.Transpose(ArrX)    .HorizontalAlignment = xlCenter    .VerticalAlignment = xlCenter   With .Previous        .Formula = '=Row()-1'        .HorizontalAlignment = xlCenter        .VerticalAlignment = xlCenter    End WithEnd WithEnd Sub

排课实际很简单,但是针对多个班级和多个教师的情况下,一些判断逻辑比较多。

再加上每个星期某一天和某一天的第几节课,整个判断下来有4种以上的逻辑。

所以,把这些逻辑弄清楚了,程序自然就简单了。

图文介绍可能不是十分直观,下面做一个视频,更详细地演示一下。

(0)

相关推荐