利用EXCELVBA自動(dòng)判分_第1頁(yè)
利用EXCELVBA自動(dòng)判分_第2頁(yè)
利用EXCELVBA自動(dòng)判分_第3頁(yè)
利用EXCELVBA自動(dòng)判分_第4頁(yè)
利用EXCELVBA自動(dòng)判分_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、利用EXCELVBAt動(dòng)判分隨著IT技術(shù)的不斷普及,以關(guān)系數(shù)據(jù)庫(kù)為基礎(chǔ)的管理系統(tǒng)在日常工作中得以廣泛應(yīng)用,各類管理系統(tǒng)的應(yīng)用教學(xué)也逐漸成為高校專業(yè)課程教學(xué)的重要內(nèi)容,但如何對(duì)該類教學(xué)結(jié)果進(jìn)行判分成為一個(gè)難以解決的問題。目前較常見的解決辦法有兩種:一種是通過開發(fā)模擬考試軟件進(jìn)行判分,即虛擬某一管理系統(tǒng)的界面和功能,按指定步驟完成操作即判斷得分;另一種是專門開發(fā)某一管理系統(tǒng)的判分軟件,根據(jù)操作結(jié)果來判分。但這兩種方法均存在開發(fā)不易、靈活性差的問題。本文擬以用友U8的憑證和科目總賬為例,通過取自數(shù)據(jù)庫(kù)中的數(shù)據(jù),利用EXCELSVBA匹配學(xué)生結(jié)果和標(biāo)準(zhǔn)答案來完成這一判分過程。一、相關(guān)工作簿為完成自動(dòng)判

2、分過程,設(shè)計(jì)了pf.xls、bz.xls和xs.xls三個(gè)工作簿,pf.xls為判分信息文件,bz.xls為標(biāo)準(zhǔn)答案,xs.xls為學(xué)生結(jié)果,三表結(jié)構(gòu)如圖1、圖2、圖3。1 .判分信息文件:pf.xls如圖1所示,該工作簿僅有main工作表,A列為學(xué)生姓名,C:H列為判分信息,其中D列為需判分的數(shù)據(jù)庫(kù)表名,F(xiàn)列為該項(xiàng)滿分值,G列為該表標(biāo)準(zhǔn)答案的總行數(shù),H列為該表中需判分的列號(hào)。2. 標(biāo)準(zhǔn)答案文件:bz.xls如圖2所示,該工作箭中的工作表與pf.xls中的D列相對(duì)應(yīng),如本例中有g(shù)l_accsum和gl_accvouch兩個(gè)工作表。各工作表中A列為姓名,B列為得分,C列為組合結(jié)果,從D列開始是取

3、自標(biāo)準(zhǔn)答案的數(shù)據(jù)庫(kù)該表的內(nèi)容,B和C列為空。3. 學(xué)生結(jié)果文件:xs.xls如圖3所示,學(xué)生結(jié)果文件結(jié)構(gòu)同標(biāo)準(zhǔn)答案文件,區(qū)別在于各表內(nèi)容取自學(xué)生數(shù)據(jù)庫(kù)該表的內(nèi)容。二、判分過程4. 取標(biāo)準(zhǔn)答案和學(xué)生結(jié)果先根據(jù)pf.xls中D列中各表名,用SQL語(yǔ)句取出標(biāo)準(zhǔn)答案和學(xué)生結(jié)果形成bz.xls和xs.xls兩個(gè)工作簿(因各系統(tǒng)數(shù)據(jù)平臺(tái)各異,為節(jié)省篇幅,該部分程序略)。5. 處理標(biāo)準(zhǔn)答案將bz.xls中各表的內(nèi)容根據(jù)操作結(jié)果進(jìn)行調(diào)整,把不構(gòu)成判分的行刪除,有多種答案的情況增加相應(yīng)行。將標(biāo)準(zhǔn)答案各表中判分總行數(shù)填入pf.xls的G列,該表總得分填入pf.xls的F列。如第2行的分?jǐn)?shù)和得分點(diǎn)表示gl_accs

4、um的標(biāo)準(zhǔn)答案中有55行,占總分的40分。6. 設(shè)置分值、判分列和判分項(xiàng)將各表的判分列填入pf.xls的H列,以半角逗號(hào)間隔。如“憑證”所對(duì)應(yīng)H3的值“e,f,h,u,w,x”,表示根據(jù)gl_accvouch表中這6列數(shù)據(jù)判斷憑證結(jié)果的正確性。7. 用程序判分在pf.xls中按ALT+F11進(jìn)入VBE窗口后輸入判分程序代碼,執(zhí)行后在xs.xls中新增一張”判分”表,表中內(nèi)容為各學(xué)生的分項(xiàng)得分和總分。結(jié)果見圖4。三、判分程序代碼Sub判分()dpi=ThisWorkbook.Path&""fmax=Sheets("main").Range(&quo

5、t;d65536").End(xlUp).Row'需判分表數(shù)xmax=Sheets("main").Range("a65536").End(xlUp).Row'學(xué)生人數(shù)Workbooks.OpenFilename:=dp1&"bz.xls"Workbooks.OpenFilename:=dp1&"xs.xls"WithWorkbooks("xs.xls")OnErrorResumeNextApplication.DisplayAlerts=False.S

6、heets("判分").Delete.Sheets.Add.Name="判分"'增加一張判分表,再次運(yùn)行前需先把該表刪除.Sheets("判分").Range("a1:a"&xmax)=Sheets("main").Range("a1:a"&xmax).ValueEndWithFori=2Tofmax'逐表判分WithWorkbooks("pf.xls").Sheets("main")SN=Trim(.C

7、ells(i,4).Value)'表名sc=Trim(.Cells(i,5).Value)'表中文名mf=.Cells(i,6).Value'單項(xiàng)滿分?jǐn)?shù)fs=mf/.Cells(i,7).Value'每一得分點(diǎn)分?jǐn)?shù)gs=Trim("="&Replace(.Cells(i,8).Value,",","2&"&"""_"""&"&")&2)'替換后的公式EndWithWit

8、hWorkbooks("bz.xls").Sheets(SN)'生成各項(xiàng)標(biāo)準(zhǔn)答案.Range("c2:c"&.Range("a65536").End(xlUp).Row).Formula=gsEndWithWithWorkbooks("xs.xls").Sheets(SN)'用match()學(xué)生各表判分xsmax=.Range("a65536").End(xlUp).Row.Range("c2:c"&xsmax).Formula=gs.Rang

9、e("b2:b"&xsmax).Formula="=if(iserror(match(C2,bz.xls"&SN&"!$C:$C,0),0,1)"EndWithWithWorkbooks("xs.xls").Sheets("判分")用sumif()分項(xiàng)統(tǒng)計(jì)學(xué)生得分.Cells(1,i+1).Value=sc&mf.Range(Cells(2,i+1),Cells(xmax,i+1).Formula="=round(SUMIF("&SN&

10、amp;"!A:A,判分!A2,"&SN&"!B:B)*"&fs&",2)"EndWithNextiWithWorkbooks("xs.xls").Sheets("判分")用sum()匯總學(xué)生得分至判分表第2列.Cells(1,2).Value="總分".Range(Cells(2,2),Cells(xmax,2).Formula="=SUM(c2:z2)"EndWithWorkbooks("xs.xls").CloseSavechanges:=TrueWorkbooks("bz.xls").CloseSavechanges:=TrueEndSub四、本辦法的優(yōu)點(diǎn)1. 簡(jiǎn)單易用本辦法主要利用EXCE匪找函數(shù)的功能進(jìn)行判分,只要用VBA通過SQL語(yǔ)句將數(shù)據(jù)取到工作箭中,完

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論