|
终于自己找到一个方法,做教师姓名课程表了!呵呵
对VB也不熟悉,查了好多资料才弄明白。其实也很简单。
EXCEl几个最常用的命令就是Sheet(指定工作表,如sheet1,sheet2),Range(指定单元格范围,如 Range("a1:H23")),Cells(指定单个单元格,如cells(12,7)),对EXCEL编辑程序主要工作之一是EXCEL中各个单元格的数据与程序里的变量之间相互转换。
比如你想对电子表格里的数据做某种处理,基本思路就是:
1、把电子表格数据存储到单个或数组变量中
2、再用一些常用的程序命令对数组做数据逻辑或计算处理
3、最后把结果在放回到EXCEL单元格里就OK。
关于做带教师姓名的课程表,我想明白一个简单方法(已经测试好用):
说明:分工表和课程表格式如下,
分工表行是班级,列是学科,
课程表行是班级,列是周一至周五每天课程。就是说这两个表第一列都是班级。
例如分工表:
数 语 英 . . .
初1.1 王老师 李老师 付老师
初1.2 张老师 隋老师 赵老师
.
.
例如课程表:
1 2 3 4 5 6 7 8 1 2 3...
初1.1 数 语 物 ......
初1.2 化 信 生 ......
.注意:课程表和分工表的标题先不用加上,即第一行是学科名或课节数,第一例为班级名,课程表和分工表的班级顺序一致。
. 我是把我单位的分工表和课程表分别放在同一个EXCEL文件里,分工表放在Sheet1里,课程表放在Sheet2里,而你需要的教师姓名分工表准备放在 Sheet3里。你先点开 Sheet3,是个 空EXCEL,再按“Alt+F11”进入代码编辑窗口,点击左上方的 “Sheet3”,把下面是代码复制到右侧代码编辑窗口里面:
Sub 教师姓名课程表()
'X为学校班级总数
Const x As Integer = 35
'y为某一个班每周课节总数
Const y As Integer = 40
'z为学科数
Const z As Integer = 15
'定义课程表和分工表的数组变量
Dim kcb(x + 1, y + 1)
Dim fgb(x + 1, z + 1)
'把分工表信息读入数组中
For j = 1 To x + 1
For k = 1 To z + 1
fgb(j, k) = Sheet1.Cells(j, k)
Next k
Next j
'把课程表信息读入数组中
For i = 1 To x + 1
For j = 1 To y + 1
kcb(i, j) = Sheet2.Cells(i, j)
Next j
Next i
'做个简单逻辑判断,确定某班某天某节课对应的教师姓名,并生成教师姓名课程表到sheet3
For i = 2 To x + 1
For j = 2 To y + 1
For k = 2 To z + 1
If kcb(i, j) = fgb(1, k) Then Sheet3.Cells(i, j) = fgb(i, k)
Next k
Next j
Next i
End Sub
[ 本帖最后由 acldzx 于 2010-12-25 19:23 编辑 ] |
|