本站小編為你精心準(zhǔn)備了Excel軟件在高校教務(wù)管理中的應(yīng)用參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
《辦公自動(dòng)化雜志》2015年第三期
一、excelVBA基本知識(shí)
1、條件控制語句條件控制語句就是根據(jù)一定的條件,控制程序的走向。最通俗的說法就是當(dāng)滿足某個(gè)條件時(shí)執(zhí)行某段程序,否則執(zhí)行另一段程序。最基本的條件控制語句是If…Then…Else。該語句的具體格式如下。其中,條件就是布爾類型的變量,如果條件為true,就執(zhí)行語句塊1,否則執(zhí)行語句塊2。條件控制語句的語法規(guī)則跟我們語言中的“如果…就…否則…”本質(zhì)上是一樣的,都是根據(jù)一定的條件決定后續(xù)的工作。為了滿足一些復(fù)雜情況的需要,我們還可以對(duì)條件控制語句進(jìn)行嵌套使用。嵌套使用方法與Excel中的If函數(shù)使用基本一致,這里就不再贅述。
2、循環(huán)控制語句循環(huán)結(jié)構(gòu)是用于處理重復(fù)執(zhí)行的結(jié)構(gòu),可以重復(fù)執(zhí)行若干條語句。循環(huán)結(jié)構(gòu)是程序設(shè)計(jì)中經(jīng)常遇到的程序機(jī)構(gòu),也是使用最多的程序結(jié)構(gòu)之一。VBA中循環(huán)結(jié)構(gòu)也有許多種,但最基礎(chǔ)也是使用最頻發(fā)的就是For…Next循環(huán)結(jié)構(gòu),其基本語法如下:For計(jì)數(shù)器=初始值To終止值語句塊Next計(jì)數(shù)器所謂計(jì)數(shù)器其實(shí)就是一個(gè)整型變量。程序根據(jù)該變量的取值范圍控制語句塊的執(zhí)行次數(shù)。對(duì)于Excel表格來說,最常見的循環(huán)范圍就是表格所有行。到目前為止,我們介紹了VBA中的變量、條件控制語句和循環(huán)控制語句。下面,我們會(huì)利用這三種VBA基本語法規(guī)則實(shí)現(xiàn)高效教務(wù)工作中最常見的高校教師工作量統(tǒng)計(jì)計(jì)算。由于高校不同院系之間,同一院系不同專業(yè)之間存在授課的交叉情況,這就為教師工作量統(tǒng)計(jì)帶來了一定的困難。許多情況下,單純利用Excel提供的函數(shù)很難一步到位的完成統(tǒng)計(jì)工作。下面一節(jié),我們會(huì)根據(jù)一個(gè)實(shí)際的數(shù)據(jù)展示如何利用VBA實(shí)現(xiàn)這一計(jì)算。
二、利用VBA實(shí)現(xiàn)高校教師工作量重復(fù)課系數(shù)計(jì)算
高校教師工作量統(tǒng)計(jì)是衡量教師每學(xué)期工作的基礎(chǔ),直接影響了教師的各項(xiàng)評(píng)定。其中,由于教師上課的復(fù)雜性,重復(fù)課系數(shù)的計(jì)算很難直接套用Excel提供的函數(shù)直接完成。圖2為某高校某學(xué)院教師教學(xué)真實(shí)統(tǒng)計(jì)信息。該數(shù)據(jù)有如下幾個(gè)特點(diǎn):●某些教師負(fù)責(zé)同一班級(jí)的多門課程;●某些教師負(fù)責(zé)不同班級(jí)的同一門課程;●某些教師負(fù)責(zé)不同班級(jí)的不同課程;●此外,每一門課程的選課人數(shù)也影響著教師工作量的計(jì)算。根據(jù)該高校學(xué)院的規(guī)定,一位教師工作量重復(fù)課系數(shù)計(jì)算規(guī)則如下。1、如果該教師只為一個(gè)班級(jí)教授一門課,那么該門課的重復(fù)課系數(shù)為1.0;2、如果該教師為2到4個(gè)班級(jí)教授同一門課,根據(jù)選擇該門課的學(xué)生人數(shù)進(jìn)行設(shè)置該門課的重復(fù)課系數(shù):對(duì)于人數(shù)最多的班級(jí),該門課的重復(fù)系數(shù)設(shè)為1.0;剩下的其他班級(jí)這門課系數(shù)設(shè)為0.9;3、如果該教師教授這門課的班級(jí)超過4個(gè),根據(jù)不同班級(jí)的選課人數(shù),挑選出選課人數(shù)最少的三個(gè)班級(jí)并把這些班級(jí)重復(fù)課系數(shù)設(shè)為0.9,剩下的其他課程設(shè)為1.0。從這三個(gè)基本計(jì)算規(guī)則我們很容易發(fā)現(xiàn),由于教師授課情況的復(fù)雜,利用Excel集成的函數(shù)很難完成教師重復(fù)課系數(shù)的計(jì)算。在這種情況下,多數(shù)高校教務(wù)人員不得不采用手動(dòng)計(jì)算的方法。很明顯,手動(dòng)計(jì)算效率底下且容易出錯(cuò),出了問題也很難找到進(jìn)行修正。其實(shí)利用VBA可以很輕松的完成該計(jì)算過程。只要簡(jiǎn)單利用本文上面提到的條件控制語句和循環(huán)控制語句,結(jié)合一定的邏輯判斷即可完成。具體代碼如表1所示。如表所示,該代碼一共有35行。看起來代碼很多,其實(shí)代碼中有很多代碼塊是非常相似的,只要理解其中一小部分代碼的含義,即可了解整個(gè)代碼的運(yùn)行機(jī)制。整個(gè)高校教師工作量重復(fù)課系數(shù)計(jì)算流程就是:(1)在該Excel工作表中隊(duì)選課人數(shù)按照從大到小的順序進(jìn)行排序;(2)點(diǎn)擊VBA代碼窗口中的運(yùn)行按鈕(如圖3紅色區(qū)域所示),執(zhí)行該段代碼,重復(fù)課系數(shù)即可自動(dòng)計(jì)算出來并添加到相應(yīng)的單元格中。下面我們對(duì)該段代碼的具體含義做個(gè)簡(jiǎn)單的介紹。
表1重復(fù)課系數(shù)計(jì)算代碼該段代碼共35行,第1行代碼“Subcompute()”和第35行代碼“EndSub”是該代碼段的標(biāo)識(shí)。由于一個(gè)表格可能需要多種代碼滿足不同的計(jì)算需求,這就需要一定的方法用來標(biāo)注不同的代碼段。其中Sub標(biāo)識(shí)符后邊的名字,用戶可以根據(jù)自身的需要自由命名。第2行代碼用來聲明三個(gè)變量,用于后續(xù)的計(jì)算。第3行代碼是獲取該Excel表格的所有行數(shù),為了去掉標(biāo)題行我們對(duì)獲取的行數(shù)減1。從第4行代碼到第34行代碼是一個(gè)本文在前面介紹到的循環(huán)控制語句,對(duì)該表格所有行數(shù)據(jù)進(jìn)行逐一計(jì)算。第5行到第33行代碼是一個(gè)條件控制語句,用來判斷當(dāng)前進(jìn)行計(jì)算的行是否已經(jīng)計(jì)算過,如果沒有計(jì)算過則進(jìn)行后續(xù)處理,否則直接跳到下一行數(shù)據(jù)再次判斷。第7行代碼直接調(diào)用Excel集成的Match函數(shù)計(jì)算整個(gè)表格中與當(dāng)前行的任課教師和課程相同的行數(shù)數(shù)量。從第8行到第33行代碼根據(jù)得到的滿足條件的行的數(shù)量進(jìn)行分別處理:(1)如果第8行If語句判斷為1,則直接執(zhí)行第9行語句,直接在對(duì)應(yīng)的單元格賦值為1.0;(2)如果第8行If語句判斷失敗,則表明滿足條件的行數(shù)大于1,調(diào)用第11行到第32行的條件判斷語句進(jìn)行處理;(3)調(diào)用代碼第11行判斷滿足條件的行數(shù)是否在2-4之間,如果滿足則調(diào)用第12到底20這段循環(huán)代碼對(duì)相應(yīng)單元格進(jìn)行賦值。由于事先已經(jīng)對(duì)表格按照選課人數(shù)進(jìn)行排序,所以只要對(duì)第一個(gè)滿足條件的行的重復(fù)課系數(shù)設(shè)為1.0,其他設(shè)為0.9;(4)如果第11行語句判斷行數(shù)大于4,則執(zhí)行第22到第30這段循環(huán)控制語句代碼,挑選出選課人數(shù)最少的三行,設(shè)置其重復(fù)課系數(shù)為0.9,其他行設(shè)為1.0。這段代碼看似復(fù)雜,其實(shí)有許多功能相近的子塊,如第12到第20代碼塊和第22代碼塊到第30代碼塊。這些相似代碼塊由條件控制語句控制其執(zhí)行流程。
三、小結(jié)
VBA包含了數(shù)量眾多變量類型及許多不同種類的控制語句。但只要我們掌握了其中幾種最基本的語法規(guī)則就可以完成看似復(fù)雜的運(yùn)算,彌補(bǔ)Excel集成的函數(shù)在應(yīng)用靈活上的不足,極大提高廣大高校教務(wù)員的工作效率。
作者:馮陳芙單位:臺(tái)州學(xué)院