|
||||
每到期末,老師都需要給每個學生家長發放一份通知書,其中包括學生成績、評語等內容,以前大家往往是采用手工填寫或者打印,必須要繁瑣地對學生成績進行排名、輸入,工作量非常大,實際上利用Excel的一些函數以及功能,就可以對學生成績進行排名,並可以實現批量打印通知書,下面就以某學校的期末通知書打印為例,來介紹具體實現方法。
整理成績以及評語表
通常一份標准的家長通知書,一般都需要包括學生成績以及老師的評語,因此在打印通知書之前,必須將這些資料整理好,啟動Excel2007,新建一個工作薄,將其予以命名,比如『2009年度通知書打印』,在其中新建一個工作表,將其命名為『學生成績明細』,在此表中將各個學生的成績復制過來,由於還需要對學生成績進行合計、排名,因此在『總分』下面的I2單元格中輸入求總分公式『=SUM(B2:H2)』,在『排名』下面的J2單元格中輸入公式『="第"&RANK(I2,$I$2:$I$71)&"名"』,然後將這兩個公式復制對應的下面單元格區域中,就可以求出所有學生的總分以及在本班級中的排名了(圖1)。
圖1
此外由於通知書中還需要添加老師的評語,因此新建一個工作表,將其命名為『老師評語』,然後在此表的A列中將學生成績明細中的學生名單復制過來,然後在B列中輸入老師對每個學生的評語(圖2)。
圖2 設計通知書打印模板
雖然每個學校的家長通知書格式可能不盡完全相同,但是大體上是差不多的,新建一個工作表,將其命名為『批量打印通知書』,然後在此表的A2:K24單元格區域中,根據自己學校的要求,輸入家長通知書的必要內容,如標題、開頭語、成績表格、評語表格以及家長填寫意見的位置(圖3)。
圖3
由於要實現批量打印,必須在此通知書模板中添加一個通知書序號選擇單元格,這樣就能夠通過這個單元格中的不同序號,從而能夠顯示不同的家長通知書,在L3單元格中輸入『請輸入序號』,然後確定M3單元格為通知書序號選項單元格。同時為了將前面學生成績明細中每個學生的數據自動引用過來,在通知書中學生成績明細表『學生姓名』下面的A12中輸入公式『=OFFSET(學生成績明細!$A$2,$M$3*1-1,0)&""』,在第1門課『語文』下面的B12中輸入公式『=VLOOKUP($A$12,學生成績明細!$A$2:$K$60,2,0)』,在第2門課『數學』下面的B12中輸入公式『=VLOOKUP($A$12,學生成績明細!$A$2:$K$60,3,0)』,並依次類推,然後在存放老師評語的A14中輸入公式『=VLOOKUP($A$12,老師評語!$A$2:$B$71,2,0)』。這樣當在M3單元格中輸入1時,就會在通知書模板中顯示第1個學生的家長通知書,而2時,則顯示第2個學生的家長通知書。
需要注意的是,此處使用了OFFSET、VLOOKUP等函數,其作用為根據M3單元格中的數值,而自動引用學生成績明細對應的學生姓名,而且在成績表以及評語中自動引用相應學生的成績以及評語資料,而公式『OFFSET(學生成績明細!$A$2,$M$3*1-1,0)&""』中的$M$3*1則是針對不同數據之間相隔行數而定的,如果相隔2行,則將其修改為$M$3*2即可。
利用控件,高效率批量打印通知書
在前面通知書模板設計的基礎上,就可以利用控件進行批量打印通知書的工作了,在N2、N3中分別輸入開始序號、結束序號,以其後面的O2、O3單元格作為批量打印通知書的起始序號,接著單擊『開發工具』菜單,單擊『控件』功能區中的『插入』選項,在彈出的控件列表中,選擇『ActiveX控件』中的命令按鈕,將其拖動到M3單元格的下面。
接著右擊此按鈕控件,在彈出的右鍵快捷菜單中,選擇『屬性』命令,在隨之彈出的『屬性』對話框中,將此按鈕控件的『Caption』屬性,即按鈕標題修改為『批量打印通知書』。然後還是右擊此按鈕控件,選擇『查看代碼』命令,在彈出的VBA編輯窗口中輸入以下批量打印命令:
Private Sub CommandButton1_Click()
For i = Range("o2") To Range("o3")
Range("m3") = i
ActiveSheet.PrintOut
Next
End Sub
輸入完畢後,關閉此VBA編輯框,單擊『控件』功能區中的『設計模式』選項,以退出設計模式,然後選擇下通知書的打印區域,最後在O2、O3單元格中輸入需要批量打印家長通知書的起始序號,如1?50,最後單擊『批量打印通知書』按鈕,就可以立即打印出所需要的所需要的50名學生通知書了。
以上的批量打印是僅僅針對通知書打印而言的,實際上利用以上方法,稍微修改下,還可以應用其他一些批量打印工作領域中,如打印標簽、付款通知單、成績單等等,通過這個方法能夠大大提高工作效率,減少出現工作誤差的機率。