|
Sub 显示教师课表()
Dim i As Integer, li As Integer, jskb As Worksheet, arr, brr(1 To 11, 1 To 6) As String, js As String
arr = Worksheets("总课表").Range("a1").Resize(Worksheets("总课表").Cells(Rows.Count, 2).End(xlUp).Row, 58)
Set jskb = Worksheets("教师个人课表")
js = jskb.Range("c5").Value
For i = 5 To UBound(arr) Step 2
If arr(i, 2) = js Then brr(10, 6) = arr(i - 1, 1) & Chr(10) & arr(i - 1, 2)
If arr(i, 3) = js Then brr(11, 6) = arr(i - 1, 1) & Chr(10) & arr(i - 1, 3)
For l1 = 4 To 58
If arr(i, l1) = js Then
brr(((l1 - 4) Mod 11) + 1, (l1 - 4) \ 11 + 1) = arr(i - 1, 1) & Chr(10) & arr(i - 1, l1)
End If
Next l1
Next i
With jskb.Range("c8").Resize(UBound(brr), UBound(brr, 2))
.ClearContents
.Value = brr
End With
End Sub
提存放单元格数据会影响速度,尽量少处理单元格,速度就提升了,要是禁止公式自动计算和事件响应,那你的程序是可以提升一些速度
Application.Calculation = IIf(jz, xlAutomatic, xlManual) '设置工作表公式计算为手动模式
Application.EnableEvents = false '禁止工作表事件 |
|