馬上就是各個學校期中考試的時間了。為了使各類考試的組織工作能順利地進行,讓考生順利地找到自己的考場座位坐下來安靜待考是非常重要的。這其中打印考場座位標簽成為一項必不可少的工作。許多朋友都是用Excel進行考務管理工作的,那如何利用Excel來實現批量座位標簽的打印呢?為了方便給大家介紹,接下來筆者以4個班級的考生數據為例介紹下實現的過程。
考生名冊的生成
根據座位標簽中需要打印的項目,筆者設計了“考生名冊”工作表。為了體現考試的公平,大家可事先將考生按班級號“1~4”循環的順序整理好,“座位號”也可根據考場的大小設計成“1~30”的循環號,即每個考場30個考生。
考場座位標簽報表的設計
考場座位標簽的設計要本著美觀、實用、節省紙張和便於剪裁的原則,結合實際使用的經驗,筆者在一張A4的打印紙上設計了30個座位標簽(1行3個,共10行,如下圖)。
報表的設計工作在“桌貼”工作表中進行。開始時可先設計一個座位標簽,然後對該標簽中要調用的數據進行反復測試。調用數據的方法是(以第1個考生的座位標簽為例),在第1個考生的“准考證號” 所在的B3單元格內輸入公式“=INDIRECT(“考生名冊!A”&CEILING((ROW()-1)/4,1)*3-2+CEILING(COLUMN()/5,1)-1+($P$2-1)*30+2)”便得到了該考生的准考證號。
公式中的INDIRECT函數的功能是用於返回指定單元格內的引用(即“考生名冊”工作表A3單元格中的准考證號);公式中的“CEILING((ROW()-1)/4,1)*3-2+CEILING(COLUMN()/5,1)-1+($P$2-1)*30+2”得到的數值為“3”,使用該公式的目的在於指定該考生標簽所在單元格區域(“A2:E5”,即4行5列)內返回的都是同一個數字,這樣做是為了在其余的“姓名”、“班級”、“考場”和“座號”等單元格中用相同的函數實現對該考生數據的調用,這一功能主要是通過CEILING函數來實現的,該函數的功能是將指定的數值向上捨入為最接近的整數。
接下來就可以用相同的公式來調用該考生的“姓名”、“班級”、“考場”和“座號”等單元格中的數據了,只需將原來公式中的指定的A列分別改為“B”、“C”、“D”和“E”列就可以了。另外需要注意的是,由於考生的人數較多,數據調用時還要考慮到打印時超過一頁的情況,因此在公式的最後加上了“($P$2-1)*30+2” (“考生名冊”表中有2行標題,故要加“2”),公式中的“P2”單元格為手工設定的用於輸入指定頁碼的單元格,這樣就可以方便任意頁標簽的顯示和打印了。
在設計的“桌貼”工作表中除了輔助單元格外,需要打印的單元格區域可通過“頁面設置”對話框中的“打印區域”來指定(如下圖)。
打印功能的設計
為了便於打印全部的考生座位標簽或指定的某頁標簽,筆者設計了以下兩段VBA代碼來輔助實現這兩項功能:在“桌貼”工作表中利用“控件工具箱”工具欄中的“命令按鈕”繪制兩個按鈕控件“CommandButton1”和“CommandButton2”,將它們的“Caption”屬性分別改為“打印全部頁”和“打印指定頁”。雙擊命令按鈕 “打印全部頁”,在其Click( )事件中輸入代碼如下圖。
關閉代碼窗口返回到Excel工作表中,單擊“打印全部頁”按鈕就可以實現所有考場座位標簽的打印。單擊“打印指定頁”按鈕就可以根據提示輸入需要打印的頁碼,系統會自動判斷指定的頁碼是否超出頁碼范圍,如果在指定的頁碼范圍內則打印指定的標簽頁,否則會給出錯誤提示信息。
通過以上操作我們就可以在Excel中實現考場座位標簽的打印了,而且一勞永逸,每次只需要將考生的名單等基本信息做些修改就可以直接打印了,是不是很方便呢?