|
aoe1981 发表于 2014-7-31 22:30
我的回写方法,其实是走的捷径,当然,不知我是否理解正确了……
以上来自于择班模块,增加的 ...
谢谢,这捷径确实走得优秀,我怎么没想到,呵呵。。。。
不过我对楼主这段代码有些地方还不是非常理解(我认为这就是你程序的精华)
Dim xb$, bj1%, bj2%, zf&, mymin&, myrow& '(三)交换学生
For i = 1 To h - 2
If zbxx(i, zbl) = "" Then Exit For Else xb = zbxx(i, xbl): bj1 = zbxx(i, zbl): bj2 = zbxx(i, bjl): zf = zbxx(i, zfl)
mymin = Abs(1000 - zf) '首次1000分进行比较
For j = 3 To hh(bj1) '寻找最佳匹配学生
If fbxx(bj1)(j, xbl) = xb And fbxx(bj1)(j, zbl) = "" Then '性别、择班控制,在同性别、未择班的学生中调换名次最接近的
If Abs(fbxx(bj1)(j, zfl) - zf) < mymin Then mymin = Abs(fbxx(bj1)(j, zfl) - zf): myrow = j
End If
Next j
For j = 1 To l '交换择班学生与对应班最佳匹配学生
If j <> bjl Then '班级列不予交换
zbjh(j) = fbxx(bj2)(h1(i), j)
fbxx(bj2)(h1(i), j) = fbxx(bj1)(myrow, j)
fbxx(bj1)(myrow, j) = zbjh(j)
End If
Next j
Next i
帮我解释一下红色部分的含义,谢谢
我主要是看不懂fbxx(bj1)(j, xbl),这是什么写法???
|
|