999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA與Excel的高校成績統計分析模板設計

2008-12-31 00:00:00桂林斌
電腦知識與技術 2008年35期

摘要:該文應用VBA(Visual Basic for Application)對Excel二次開發的功能,編程設計了成績統計與分析模板,實現了學生考試成績的自動統計和填寫、自動完成了各分數段人數和重點觀測指標的統計、自動生成了分析圖表等。應用該模板,可以大大減輕教師進行學生考試成績統計與分析工作帶來的負擔,對教學管理中的學生成績統計與分析具有一定的推廣使用價值。

關鍵詞:VBA;Excel;成績統計與分析;模板;設計

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)35-2367-04

The Template Design of Result Statistics and Analysis Based on VBA and Excel

GUI Lin-bin

(Computer and Information Engineering Department, Yunnan Vocational Institute of Energy Technology, Qujing 655001, China)

Abstract: This article applied VBA (Visual Basic for Application) to the Excel re-development functions, the programming has designed the result statistics and the analysis template, realized the student to take a test the result automatic statistics and filling in, has completed various scores section population and the key observation target statistics automatically, has produced the analysis graphics automatically and so on. Using this template, may reduce the teacher to carry on the student greatly to take a test the burden which the result statistics and the analysis work bring, has certain promotion use value to in the teaching management student result statistics and the analysis.

Key words: VBA;excel;result statistics and analysis; template; design

1 引言

教師在教學工作中,每學期末都要按照本校的管理要求和表格樣式,統計、填寫和報送學生的考試成績,同時還要按下發的成績分析表對進行分析和填寫。重復和繁瑣的手工操作,加大了教師的工作負擔,作為管理人員必須考慮兩方面的問題,首先,必須將紙質表格電子化,其次,必須將電子化的表格模板化。只有這樣,才能讓教師減輕工作負擔,從形式化的工作方式中解脫出來,節省更多的時間,以便投入到更有價值的工作中。

筆者針對上述問題,應用VBA對Excel二次開發的功能,編程設計了成績統計與分析模板,實現了學生考試成績的自動統計和填表,同時在成績分析表中自動完成了各分數段人數和重要觀測指標的統計、自動生成了分析圖表等。

2 Excel 的 ActiveX 對象模型

2.1 Workbooks 集合對象

一個 WorkBook 對象實際上就是一個 Excel 文件,Excel 應用程序可以同時打開或創建多個文件,它們被保存在 WorkBooks 集合對象中,可以通過索引號或名稱訪問集合中的任何一個工作簿。

例:'創建一個新的工作薄

Workbooks.Add

Workbooks.open(\"E:\\abc.xls\")'打開 E 盤根目錄下的 abc.xls 工作薄

2.2 Worksheets 對象

每個工作簿對象上可以有多個工作表 WorkSheet。在默認情況下, Excel 的當前工作簿上有名為Sheet1,Sheet2,Sheet3 三個工作表,并且 Sheet1 為當前工作表。如果想使 Sheet3 成為當前工作表,則可使用下列語句:

ExcelApp.Worksheets(\"Sheet3\").Activate

2.3 Range 對象

該對象用來指定工作表上的區域。例如:'將第 5 行格式復制至 100 行,語句如下:

Range(\"5:5\").Select

Selection.Copy

Range(\"5:100\").Select

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone

1.4 Cells 屬性

工作表對象中的Cells 屬性,在單元格的選擇方面可以達到與Rang相同的效果,它是以行Row和列Col作為參數的,如下語句所示:

Cell(3,4) =5 '將第三行第四列的單元格賦值5。

3 成績統計與分析模板設計

3.1 成績統計與分析模板建立步驟及功能說明

1) 打開 Excel 后,將sheet1、sheet2、sheet3工作表分別改名為“首頁”、“成績統計”和“成績分析”。

2) 選擇“首頁”工作表,按圖1 格式建立和設置相關表格格式并填寫相關基礎數據,設定“學期”成績計算公式:學期=ROUND(平時+期中*百分比+期末*百分比,0),當輸入“平時”成績和“期中”或“期末”卷面成績時,學期成績自動按公式計算填寫。

3)定義單元格名稱。將“任課教師”、“專業班級”、“課程名稱”、“應考人數”、“實考人數”、“學年”、“學期”、“期中、期末”、“卷屬(A、B)”、“考試時間”、“平時成績占”、“考試成績占” 單元格對應右邊的數據單元格,名稱分別定義為“教師”、“班級”、“課程”、“應考人數”、“實考人數”、“學年”、“學期”、“期中、期末”、“卷屬”、“考試時間”、“平時成績”、“考試成績”,以方便在VBA代碼中按單元格名稱引用。

4) 在表格的下邊建立一個“下一步”按鈕。選擇“視圖”→“工具欄”→“控件工具箱”,在“控件工具箱”中單擊 “命令按鈕”,然后在工作表中畫一個命令按鈕。雙擊該按鈕進入VBA編輯界面,打開屬性對話框,將命令按鈕的“名稱”屬性設置為jnext、caption屬性設置為“下一步>>”。

5) 打開“成績統計”工作表,按圖2左所示完成基礎表格設置。表頭名稱及相關信息由代碼自動完成,表格行數、單元格格式由代碼按“應考人數”自動增加和設置。

圖2 成績統計設計時及運行后樣表

6) 打開“成績分析”工作表,按圖3所示完成基礎表格設置。

7) VBA程序代碼編寫。選擇菜單“工具”→“宏”→“Visual Basic編輯器”,打開“工程資源管理器”,在“首頁”代碼窗口中,對“下一步>>”按鈕編寫鼠標單擊事件代碼。

8) VBA代碼功能說明。當單擊“下一步>>”按鈕時,在“成績統計”工作表中,自動按“首頁”中輸入的“應考人數”增加表格行,按順序分欄填寫“學號”、從“首頁”表中復制“姓名”、“平時”、“期中”、“期末” 成績、計算并填寫“學期”成績。在“成績分析”工作表中自動填入表頭信息、自動根據“首頁”中的“學期”成績進行各分數段、重點觀測指標的統計填寫,同時自動生成分數段人數折線圖表。

3.2 VBA程序代碼編寫

統計模板中的統計計算、填表、生成圖表等由程序自動完成,相應單元格也可以手動修改,只需在“首頁”工作表中填寫基本數據,其余的都可以由程序自動完成。下面給出VBA程序參考代碼。

Sub jNext_Click() '下一步按鈕單擊事件

Const Row As Integer = 7 '第一行記錄前的起始行號

Dim i, j, a, b, m, n, t, x, y As Integer

Dim SourceRange, FillRange As Range

Dim f As String

Sheets(\"成績統計\").Select '切換到成績統計表

t = Worksheets(\"首頁\").Range(\"應考人數\")

x = Round(t / 2, 0)

If (t / 2 - x) > 0 Then

x = Round(t / 2 + 0.5, 0)

Else

x = Round(t / 2, 0)

End If

y = x + 7

If t > 50 Then

Worksheets(\"成績統計\").Range(\"a8:l8\").Select

Selection.Copy

Worksheets(\"成績統計\").Range(\"a9:l\" y).Select

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone

Else

End If

'把當前工作表的頁腳右邊設置為“第X頁 共X頁”的格式,格式控制代碼P 頁碼 N 共X頁

With ActiveSheet.PageSetup

.RightFooter = \"第P頁 共N頁 \" '頁腳 右

End With

With Sheets(\"成績統計\")

If t > 50 Then'根據應考人數按左右兩列格式給學號及各項成績賦值

For i = 1 To x

.Cells((i + Row), 1) = i

For m = 2 To 6

.Cells((i + Row), m) = Worksheets(\"首頁\").Cells((i + 3), m)

Next m

Next i

For j = 1 To t - x

.Cells((j + Row), 7) = j + x

For n = 8 To 12

.Cells((j + Row), n) = Worksheets(\"首頁\").Cells((j + x + 3), (n - 6))

Next n

Next j

ElseIf t > 25 Then

For i = 1 To 25

.Cells((i + Row), 1) = i

For x1 = 2 To 6

.Cells((i + Row), x1) = Worksheets(\"首頁\").Cells((i + 3), x1)

Next x1

Next i

For j = 1 To t - 25

.Cells((j + Row), 7) = j + 25

For y1 = 8 To 12

.Cells((j + Row), y1) = Worksheets(\"首頁\").Cells((j + 28), (y1 - 6))

Next y1

Next j

Else

For i = 1 To t

.Cells((i + Row), 1) = i

For m1 = 2 To 6

.Cells((i + Row), m1) = Worksheets(\"首頁\").Cells((i + 3), m1)

Next m1

Next i

End If

.Cells(2, 2) = Worksheets(\"首頁\").Range(\"學年\") \"學年\" Worksheets(\"首頁\").Range(\"學期\") \"學期學生成績報告表\"

.Cells(4, 2) = \"專業班次:\" Worksheets(\"首頁\").Range(\"班級\") \"課程名稱:\" Worksheets(\"首頁\").Range(\"課程\") \"教師姓名:\" Worksheets(\"首頁\").Range(\"教師\")

End With

Sheets(\"成績分析\").Activate

With Worksheets(\"成績分析\")

.Cells(1, 2) = \"成 績 分 析 表\"

.Cells(2, 2) = Worksheets(\"首頁\").Range(\"學年\") \"學年\" Worksheets(\"首頁\").Range(\"學期\") \"學期\" \"(\" Worksheets(\"首頁\").Range(\"期中、期末\") \")考試 \" \"卷屬:\" Worksheets(\"首頁\").Range(\"卷屬\")

.Cells(4, 3) = Worksheets(\"首頁\").Range(\"課程\")

.Cells(4, 6) = Worksheets(\"首頁\").Range(\"考試時間\")

.Cells(5, 3) = Worksheets(\"首頁\").Range(\"班級\")

.Cells(5, 5) = Worksheets(\"首頁\").Range(\"應考人數\")

.Cells(5, 7) = Worksheets(\"首頁\").Range(\"實考人數\")

.Cells(29, 3) = Worksheets(\"首頁\").Range(\"教師\")

.Cells(29, 5) = Date

End With

For i = 1 To t'計算總成績和最高分

Sum = Sum + Worksheets(\"首頁\").Cells(i + 3, 6)

If Max <= Worksheets(\"首頁\").Cells(i + 3, 6) Then

Max = Worksheets(\"首頁\").Cells(i + 3, 6)

End If

Next i

Min = Worksheets(\"首頁\").Cells(4, 6)'計算最低分

For j = 1 To t

If Min >= Worksheets(\"首頁\").Cells(j + 3, 6) Then

Min = Worksheets(\"首頁\").Cells(j + 3, 6)

End If

Next j

For m = 1 To t '統計各分數段人數

Select Case Worksheets(\"首頁\").Cells(m + 3, 6)

Case Is <= 54

h1 = h1 + 1

……

Case Is >= 90

h9 = h9 + 1

End Select

Next m

Worksheets(\"成績分析\").Cells(6, 5) = h1 + h2'計算填寫成績分析表中各項數據

Worksheets(\"成績分析\").Cells(7, 6) = Max

Worksheets(\"成績分析\").Cells(8, 6) = Min

Worksheets(\"成績分析\").Cells(9, 6) = Sum / Worksheets(\"首頁\").Range(\"應考人數\")

Worksheets(\"成績分析\").Cells(10, 6) = (h3 + h4 + h5 + h6 + h7 + h8 + h9) / Worksheets(\"首頁\").Range(\"應考人數\")

Worksheets(\"成績分析\").Cells(11, 6) = (h1 + h2) / Worksheets(\"首頁\").Range(\"應考人數\")

Worksheets(\"成績分析\").Cells(7, 3) = h1'在成績分析表相應單元格自動填寫各分數段人數h1-h9

……

Worksheets(\"成績分析\").Cells(15, 3) = h9

Charts.Add'自動根據各分數段人數生成圖表

ActiveChart.ChartType = xlLineMarkers

ActiveChart.SetSourceData Source:=Sheets(\"成績分析\").Range(\"b7:c15\"), PlotBy:=xlColumns

ActiveChart.Location Where:=xlLocationAsObject, Name:=\"成績分析\"

With ActiveChart

.HasTitle = False

.Axes(xlCategory, xlPrimary).HasTitle = False

.Axes(xlValue, xlPrimary).HasTitle = False

End With

End Sub

說明:本程序在Excel2003 VBA下調試通過。

4 結論

基于VBA和Excel進行二次開發,簡便易行,各個行業的具體應用都可以定制開發,應用面廣泛。通過簡潔的編程,可以容易地解決日常工作中重復和繁瑣的手工統計和填表工作,減輕了工作負擔,極大地提高了工作效率。

參考文獻:

[1] 張雪鳳,桂林斌.Visual Basic程序設計[M].北京:中國財政經濟出版社,2005.

[2] 李政等.VBA應用基礎及實例教程[M].北京:國防工業出版社,2005.

[3] 李旭瑋,羅璇.應用VBA實現EXCEL自動化[J].科技咨詢, 2007(31):99-100.

主站蜘蛛池模板: 全午夜免费一级毛片| 国产最新无码专区在线| 午夜综合网| 亚洲永久色| 欧美一区二区三区国产精品| 播五月综合| 一边摸一边做爽的视频17国产| 久久国产成人精品国产成人亚洲| 欧美日韩一区二区三区在线视频| 日韩无码黄色网站| 色天天综合久久久久综合片| 午夜一级做a爰片久久毛片| 国产欧美日韩综合一区在线播放| 就去吻亚洲精品国产欧美| 成年女人a毛片免费视频| 欧美一区二区三区欧美日韩亚洲| 人人看人人鲁狠狠高清| 欧美亚洲激情| 日韩精品免费一线在线观看 | 91久久国产热精品免费| jijzzizz老师出水喷水喷出| 凹凸国产熟女精品视频| 亚洲精品天堂自在久久77| 伊在人亞洲香蕉精品區| 亚洲国产成人麻豆精品| 无码福利日韩神码福利片| 亚洲天堂视频在线观看免费| 亚洲日本中文综合在线| 青青草国产一区二区三区| 久久女人网| 真实国产乱子伦视频| 中文字幕无码av专区久久| 国产精品成人一区二区不卡| 国产一级视频在线观看网站| 亚洲欧美另类色图| 亚洲日韩精品伊甸| 最近最新中文字幕免费的一页| 中文字幕无码中文字幕有码在线| 熟女成人国产精品视频| 91热爆在线| 999福利激情视频| 精品自窥自偷在线看| 成人午夜视频网站| 毛片大全免费观看| 2048国产精品原创综合在线| 亚洲中文字幕手机在线第一页| 五月天久久综合| 国产精品偷伦在线观看| 视频二区中文无码| 亚洲中文字幕久久精品无码一区| 欧美在线国产| 亚洲高清无码精品| 青青热久麻豆精品视频在线观看| 亚洲第一香蕉视频| 一本一本大道香蕉久在线播放| 欧美视频在线播放观看免费福利资源| 欧美不卡视频在线观看| 无码内射在线| 日韩精品少妇无码受不了| 亚洲IV视频免费在线光看| 无码免费试看| 91精品啪在线观看国产| 国产在线视频福利资源站| 原味小视频在线www国产| 亚洲天堂视频在线观看免费| 欧美日韩在线亚洲国产人| a欧美在线| 五月婷婷精品| 激情网址在线观看| 国产精品区视频中文字幕| 亚洲一区二区三区麻豆| 久久人午夜亚洲精品无码区| jizz国产在线| 国产女人综合久久精品视| 国产成人精品免费视频大全五级| 国产精品免费露脸视频| 91精品福利自产拍在线观看| 精品中文字幕一区在线| 亚洲国产精品无码久久一线| 91区国产福利在线观看午夜| 小说区 亚洲 自拍 另类| 亚洲另类国产欧美一区二区|