每次月考排監考表,看著密密麻麻的名字,眼睛都能給瞅瞎了,一不小心看漏一場監考,就很容易耽誤了考試。其實用Excel的VBA,隻需短短幾行代碼就可以幫你一次性找出所有的監考場次,再也不用擔心漏掉某一場考試了。
下麵是效果演示。點擊任意一個教師的姓名,就可以高亮顯示同一個老師的所有監考場次,非常好用。
其製作方法如下:
第一步:開啟『開發工具』菜單。
『開發工具』菜單默認是隱藏的,可以點擊『文件』菜單,依次選擇『選項』『自定義功能區』,然後勾選『開發工具』選項,使其顯示出來。
第二步:編寫VBA代碼
點擊『開發工具』菜單,點擊『Visual Basic』命令按鈕,雙擊左側『工程』窗口的Sheet1,並在右側代碼區輸入如下代碼:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'將B5:G20區域的單元格背景與字體顏色設置為默認
Range("B5:G20").Interior.Color = xlNone
Range("B5:G20").Font.Color = RGB(0, 0, 0)
'如果當前選擇區域不在B5:G20範圍則退出此過程
If Application.Intersect(Target, Range("B5:G20")) Is Nothing Then Exit Sub
'如果當前選擇的不止一個單元格,則將選取的第一個單元格作為目標單元格
If Target.Count > 1 Then Set Target = Target.Cells(1)
'在B5:G20區域內循環判斷單元格內容是否與活動單元格一致,如果一致則設置黃色背景和紅色字體
Dim rng As Range
For Each rng In Range("B5:G20")
If rng.Value = Target.Value Then
rng.Interior.Color = RGB(255, 255, 0)
rng.Font.Color = RGB(255, 0, 0)
End If
Next rng
End Sub
如下圖所示:
為了讓大家理解代碼的含義,我還為代碼添加了注釋(上圖中的綠色文字部分)。
代碼中的Range("B5:G20")引用的是監考表中的姓名區域,大家在使用中可以換成自己需要的引用區域即可。
這樣就完成了所有的製作過程,關閉代碼窗口看看效果吧。