VBA 实现学校上课教员一学期中所有上课时间,在一页中通过背景底色反应出来

需求:学校一学期的所有课程表,每个教员都有可能上好几门课,但给一个教员调课时需要查找所调课时间位置有没有此教员上其它的课 相冲突,手动查找很不方便,这里想通过一个表中位置显示出同一教员在所有课表中出现上课的时间位置,实现如下,这个程序还是很好解决了此问题。

 

Sub test()
    
   Set curws = ActiveSheet '定义活动表
    curws.Cells.ClearFormats '清除表中的格式
     user = Range("af2") '取上课的人名
     If IsEmpty(user) Then
        MsgBox "af2单元格添写人名"
        Exit Sub
     End If
    
    '循环所有表
    For Each ws In Worksheets
       Set lastRg = ws.Range("a65536").End(xlUp)
        '选择任课教员的和上课的简称单元格的范围
        lastrow = lastRg.Row '取最后一行
        startrow = lastRg.End(xlUp).Row '开始行
      
        For i = startrow To lastrow - 1
            If ws.Range("n" & i) = user Then
                '找到教员就取对应的上课简称
               v = ws.Range("g" & i).Value
              '从课程表上课范围中循环
               For Each rg In ws.Range("c7:ad" & startrow - 2)
                   
                    If rg.Value = v Then
                      '从对应的绝对位置在当前活动表中对应单元格添加底色
                        curws.Range(rg.Address).Interior.ColorIndex = 3
                    End If
               Next
            End If
        Next
        
    Next
End Sub

 

posted @ 2016-07-24 12:09  lunawzh  阅读(207)  评论(0编辑  收藏  举报