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

No.1

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

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

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

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

上图为排课操作页。

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

操作十分简单。

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

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

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

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种以上的逻辑。

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

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

、收藏。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月9日
下一篇 2021年1月9日

相关推荐