国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Excel VBA的多考場電子成績自動統(tǒng)計

2016-07-04 23:56:38陸嬌嬌
電腦知識與技術(shù) 2016年15期

陸嬌嬌

摘要: 隨著計算機技術(shù)的飛速發(fā)展,高校本科課程考核方式的改革,諸多高校已從傳統(tǒng)的紙質(zhì)試卷考核轉(zhuǎn)為無紙化考核,減少了教師工作量,極大地提高了教師的工作效率。然而,若要對一門課程多考場的許多Excel表格中的成績進行相關(guān)統(tǒng)計,全靠人工手動計算不僅耗時耗力,而且還容易出錯。為此,利用Excel VBA方便、靈活、功能強大等特點實現(xiàn)多張表格成績的自動整合與統(tǒng)計,簡化了教師的工作,提高了效率。

關(guān)鍵詞:Excel VBA;電子成績;自動統(tǒng)計

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)15-0218-02

1 引言

在高校日常教學中,課程考核占據(jù)十分重要的地位,是教學中必不可少的環(huán)節(jié),根據(jù)考核可以檢查課程制定的目標是否實現(xiàn)了教育目的,可以準確地判斷出學生掌握課程的程度,以方便課程教學設(shè)計的有效改進[1]。鑒于傳統(tǒng)紙質(zhì)試卷考核的出卷、閱卷、統(tǒng)計分析成績工作量大等諸多不足,許多高校采用無紙化上機考核方式,全部計算機閱卷,減輕了教師的工作[2]。然而,對于像大學計算機這種全校性質(zhì)的公共課程的考核,因為人數(shù)較多,機房有限,機器數(shù)量有限,往往組織一場考試是不夠的,需要組織多場考試,而每一場考試后都會生成一份本次考試的電子成績。若想了解所有考生本次考試的情況,并對所有學生的各分數(shù)段的人數(shù)進行統(tǒng)計分析,需要將各個考場的數(shù)據(jù)進行整合。如果Excel表格的數(shù)量不多,人工統(tǒng)計無妨;如果數(shù)量較多,完全手工統(tǒng)計,不僅耗時耗力,而且易出錯。

為了解決上述問題,將教師從繁重的手工勞動中解放出來,可采用Excel作為系統(tǒng)編寫工具,Excel 自帶的系統(tǒng)開發(fā)工具VBA(Visual Basic for Applicatio)方便、靈活、功能強大等特點,可以直接對Excel對象進行編程[3],實現(xiàn)多張電子表格成績的自動整合,大大簡化了教師的工作,提高了其工作效率。

2 電子成績原始數(shù)據(jù)收集

2.1 原始數(shù)據(jù)收集

由于各高校采用無紙化考核的工具不同,因此每一次考試產(chǎn)生的電子成績的文件類型也可能不同,可能是.txt,.xls/x或.doc/x等不同類型的文件。本文編寫的程序只針對.xlsx格式的文件,若考試成績的文件類型非.xlsx格式,需要將成績數(shù)據(jù)保存在.xlsx格式的文件中。

2.2 數(shù)據(jù)預(yù)處理

新建Excel工作表,將文件類型改為xlsb格式的文件,取名為“整合各表工具”。將各考場的excel成績表以及xlsb文件放到同一路徑下,xlsb格式的文件中會呈現(xiàn)具體的代碼。

3 各考場成績的統(tǒng)計

3.1 用VBA代碼實現(xiàn)各表的整合

打開.xlsb格式的文件,按快捷鍵Alt+F11打開編寫代碼的環(huán)境,插入模塊,在模塊中編寫代碼,具體代碼如下:

Sub 整合各表()

thispath = ThisWorkbook.Path'指當前工作薄的路徑

Dim SAKfile As String定義程序執(zhí)行時讀取當前表的文件名

SAKfile = Dir(thispath & "\*.xlsx")文件名獲取的方式是當前路徑下.xlsx格式的文件名

Do While SAKfile <> "" 判斷文件名不為空的時候執(zhí)行循環(huán)

If SAKfile <> ThisWorkbook.Name Then

Dim m As Long

Set SAK = Workbooks.Open(thispath & "\" & SAKfile)順次打開當前路徑下.xlsx格式的文件

Set SAKsheet = SAK.Worksheets(1)

m = SAKsheet.Range("A1048576").End(xlUp).Row 該變量為打開的表中最后一行的行數(shù)

SBKtemp = ThisWorkbook.Worksheets(1).Range("A1048576").End(xlUp).Row 該變量為當前寫程序的工作薄的第一張工作表中最后一行的行數(shù)

SAKsheet.Range("a2:d" & m).Copy ‘復(fù)制各考場的成績數(shù)據(jù)

ThisWorkbook.Worksheets(1).Range("a" & (SBKtemp + 1) & ":d" & (SBKtemp + m - 1)).PasteSpecial (xlPasteValues) 粘貼到匯總表中

Application.CutCopyMode = False ‘清空剪貼板中的數(shù)據(jù)

ThisWorkbook.Saved = True ‘保存程序文件

SAK.Close 關(guān)閉打開的excel表

End If

SAKfile = Dir

Loop

End Sub

代碼編寫完之后,在代碼窗口按F5執(zhí)行程序,或點擊視圖→宏,執(zhí)行即可。

3.2 統(tǒng)計各分數(shù)段的人數(shù)

根據(jù)上述整合數(shù)據(jù)的結(jié)果,可以使用Frequency()函數(shù)快速統(tǒng)計各分數(shù)段的人數(shù)。首先確定各分數(shù)段,然后確定間隔值(區(qū)間的上限),最后插入Frequency()函數(shù),選中結(jié)果區(qū)域,在編輯欄處按快捷鍵Ctrl+shift+enter。以某高校入學考試成績?yōu)闃颖?,統(tǒng)計結(jié)果如表1所示。

4 結(jié)束語

本文以無紙化考核軟件導出的Excel形式的成績表為例,采用Excel VBA實現(xiàn)對各個考場成績數(shù)據(jù)的整合,解決了教師手工整合各表的繁瑣問題,極大地減輕了教師工作的負擔,大大提高了教師的工作效率,基本取得了預(yù)期的效果。

該程序雖然極大程度地減輕了教師的工作量,尤其對多數(shù)據(jù)表的自動整合有很好的使用價值。但是仍有不足的地方需要改進,如前期數(shù)據(jù)的預(yù)處理能否用程序自動實現(xiàn)文件類型的轉(zhuǎn)換,對于各分數(shù)段人數(shù)的統(tǒng)計,本文采用函數(shù)實現(xiàn),盡管也很方便,但是否可將該部分用程序?qū)崿F(xiàn),進一步簡化教師的工作,能否做出人性化的界面,這需要開發(fā)人員進一步研究VBA更深層次的用途。

參考文獻:

[1] 張蕓,王繼東.基于Excel和VBA的試卷生成及評分系統(tǒng)[J].西昌學院學報(自然科學版), 2014(3):67-70.

[2] 李旭東.基于教務(wù)系統(tǒng)表格及Excel VBA的學生平時成績換算研究與實現(xiàn)[J].中國教育信息化·基礎(chǔ)教育,2014(20):81-84.

[3] 錢建明.EXCEL VBA在考場編排中的設(shè)計與實現(xiàn)[J].中國教育信息化·基礎(chǔ)教育,2014(7):65-69.

[4] 鄭杰,周曉宏.基于VBA的輔助排課系統(tǒng)的實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2014(24):67-70.

卓资县| 绵阳市| 双牌县| 长垣县| 八宿县| 三台县| 将乐县| 闻喜县| 佛坪县| 年辖:市辖区| 曲周县| 噶尔县| 东阿县| 富蕴县| 潢川县| 宝清县| 常宁市| 司法| 镶黄旗| 荥阳市| 贺兰县| 南汇区| 肇源县| 邯郸县| 庄浪县| 苗栗县| 聂荣县| 红桥区| 锦州市| 萝北县| 紫阳县| 怀化市| 四子王旗| 乌拉特后旗| 双鸭山市| 巨鹿县| 遵义市| 武邑县| 新野县| 且末县| 上杭县|