咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

No.1

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

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

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

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

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

上图为排课操作页。

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

操作十分简单。

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

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

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

No.2

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

添加排课:

Private Sub CommandButton1_Click() Dim S As Worksheet Set S = ThisWorkbook.Worksheets("teaching") Dim R As Range Set R = S.UsedRange Set R = R.Offset(1, 0).Resize(R.Rows.Count - 1, R.Columns.Count) Dim ArrX ArrX = Range("C2:C6").Value S.Activate Dim i As Integer, n As Integer, InOut As Boolean n = R.Rows.Count InOut = False For 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 If Next i If InOut Then MsgBox "已经设置成功!", vbInformation, "提示" Else SetCurr ArrX, R '调用过程 添加排课内容 MsgBox "排课成功!", vbInformation, "提示" End If End 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 With End With End Sub

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

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

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

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

欢迎关注、收藏。