☆ 張秀虎
(海州高級(jí)中學(xué),江蘇連云港 222023)
學(xué)校每學(xué)期都要對(duì)學(xué)生進(jìn)行體能考查測(cè)試,體能考查測(cè)試項(xiàng)目繁多(如圖1),每個(gè)項(xiàng)目的評(píng)分標(biāo)準(zhǔn)都不相同,同項(xiàng)目的男女生的標(biāo)準(zhǔn)也不同。如50米項(xiàng)目測(cè)試的等級(jí)有15個(gè)(如圖2)。
圖1
圖2
假設(shè)現(xiàn)有一個(gè)班級(jí)的學(xué)生測(cè)試了50米跑,現(xiàn)場(chǎng)測(cè)試的成績?nèi)绫?。由于篇幅限制,表1中只列出了8位學(xué)生的信息。依據(jù)50米的評(píng)分標(biāo)準(zhǔn),如何核算出每位學(xué)生的50米考試成績得分呢?這常讓人想到的是運(yùn)用If函數(shù)來核算考試成績得分??墒?0米的評(píng)分標(biāo)準(zhǔn)有15個(gè)等級(jí),大致需要15個(gè)If函數(shù),外加性別的判斷,以及多種考試項(xiàng)目的判斷,共需要17個(gè)If函數(shù)??上У氖荅xcel 2003及以下版本支持使用If函數(shù)的個(gè)數(shù)最多達(dá)7個(gè),所以,沒有辦法解決這個(gè)問題。不過目前Excel 2007版本允許最多嵌套64個(gè)IF函數(shù)??上У氖羌词乖试S超7層,7層以上的嵌套對(duì)一般用戶來說編寫起來非常麻煩,容易出錯(cuò)。能否利用Vba來設(shè)計(jì)一個(gè)函數(shù),只需要輸入少量的參數(shù),就能輕易地實(shí)現(xiàn)呢?接下來,為大家介紹如何運(yùn)用vba技術(shù)解決多層判斷的問題。
表1 現(xiàn)場(chǎng)考試成績表
使用Excel 2003或Excel 2000軟件,新建一個(gè)xls電子表格,將sheet1工作薄的名稱改為“評(píng)分標(biāo)準(zhǔn)”,在此工作薄內(nèi),輸入圖2的評(píng)分標(biāo)準(zhǔn)詳細(xì)信息,如果有其他考試項(xiàng)目,也將其評(píng)分標(biāo)準(zhǔn)詳細(xì)信息錄入此工作薄。工作薄中的信息按照“項(xiàng)目”、“分值”兩個(gè)關(guān)鍵字從大到小的順序排列,注意必須給每個(gè)項(xiàng)目添加分值為0的評(píng)分標(biāo)準(zhǔn)。
將sheet2工作薄的名稱改為“現(xiàn)場(chǎng)成績”,在此工作薄內(nèi),按照表1的格式輸入每位學(xué)生的現(xiàn)場(chǎng)考試成績,其中,每位學(xué)生的性別、考試項(xiàng)目、考試成績?nèi)袛?shù)據(jù)不可缺少,其他信息可以根據(jù)需要進(jìn)行添加,例如:序號(hào)、班級(jí)、年級(jí),等等。
依次選擇菜單中的工具→宏→Visual Basic編輯器命令,打開Vba代碼編輯窗口,選擇菜單中的插入→模塊命令,設(shè)計(jì)一個(gè)核算考試成績得分的函數(shù)Cjdf。其函數(shù)格式為:
函數(shù)參數(shù)說明:x,y,z,d1,d2都定義為單元格類型,x,y,z分別為性別、考試項(xiàng)目、考試成績的單元格地址,d1,d2分別為評(píng)分標(biāo)準(zhǔn)區(qū)間的左上角、右下角單元格地址。
函數(shù)功能:根據(jù)性別、考試項(xiàng)目、考試成績查詢?cè)u(píng)分標(biāo)準(zhǔn),核算出相應(yīng)成績得分,函數(shù)返回值定義為雙精度類型。
代碼如下:
打開“現(xiàn)場(chǎng)成績”工作薄,定位第一位學(xué)生的得分單元格,輸入核算成績得分函數(shù)Cjdf,并填入相應(yīng)參數(shù)。如表一中“杜知遠(yuǎn)”同學(xué),性別為c3,考試項(xiàng)目為d3,考試成績?yōu)閑3,其得分f3單元格輸入:=Cjdf(C3,D3,E3,評(píng)分標(biāo)準(zhǔn)!A$3,評(píng)分標(biāo)準(zhǔn)!C$47),回車確認(rèn),核算其得分。其他學(xué)生項(xiàng)目得分,直接復(fù)制f3單元格公式,即可核算。
將Cjdf移植至其它程序中,可以將其以“加載宏”類型保存,再在其他程序中加載宏,就可以將Cjdf函數(shù)移植,避免函數(shù)代碼的重復(fù)編寫工作。主要通過Excel中“文件菜單→另存為”命令,選擇保存類型“Microsoft Of?fice Excel加載宏”,保存宏,并將其保存在“C:Docu?mentsand SettingsAdministratorApplication DataMicro?softAddIns”目錄下。
在需要使用Cjdf函數(shù)的工作表中,選擇“工具菜單→加載宏”命令,彈出加載宏窗口,通過“瀏覽”命令瀏覽本地硬盤,找到保存的宏,將其加載至宏窗口中,然后選擇宏,將Cjdf函數(shù)加載到工作表中。
要正常使用函數(shù)Cjdf函數(shù),在打開工作表時(shí)必須啟用宏,并將宏的安全級(jí)別設(shè)置為“中”,函數(shù)Cjdf才會(huì)生效。
以上代碼在Excel2000和Excel2003中都調(diào)試成功,根據(jù)處理任務(wù)的不同,上述Cjdf函數(shù)代碼進(jìn)行適當(dāng)修改,就可應(yīng)用于不同事務(wù)要求。