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

基于VBA的學生成績數據重排功能的設計與實現

2018-01-06 01:04:05羅良夫張麗
電腦知識與技術 2017年35期

羅良夫+張麗

摘要:目前教務系統的學生成績一般采用Excel文件進行保存,且成績往往是按課程進行錄入,每行數據只有學生一門課程的成績信息,導致學生的成績信息分布的很分散,為了能夠在一行中顯示一名學生的所有成績信息,該文采用Excel自帶的VBA設計器,開發了一個學生成績數據重排功能,該功能可以快速對學生成績信息進行橫向重排,使教務管理人員能夠直觀地觀察到學生的整體學習情況,并且對中途轉入或轉出的同學也可以進行成績統計。

關鍵詞:Excel;VBA;數據重排

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)35-0129-02

1 VBA概述

隨著計算機技術的飛速發展,辦公軟件已經成為人們工作生活的重要工具,其中office系列軟件是目前主流的辦公軟件,office軟件已經集成強大的辦公類功能,但有些自定義的功能,通過office集成的功能不能直接實現,這時我們需要借助VBA來進行設計實現。

VBA(Visual Basic for Applications)是微軟開發出來的一種宏語言,是在桌面應用程序中執行通用的自動化(OLE)任務的編程語言,用來擴展Windows的應用程序功能,特別是Microsoft Office軟件。VBA是Office的內置工具,主要包括開發環境及開發語言兩部分。VBA能夠對Office文檔中的屬性與狀態進行識別[1],實際上VBA是一種用于開發應用程序的Basic語言,VBA是基于VB發展而來的,VBA與VB有著相似的語法結構,VBA是Office系列軟件集成的功能,所以不能像VB一樣生成獨立的應用程序,VBA需要基于一個主應用程序,VBA通過對象庫來控制應用程序,所以只要提供了對象庫的應用程序都可以使用VBA[2],比如Excel、Word、Powerpoint。

2 Excel VBA常用功能介紹

本文主要對學生成績的Excel文件進行數據處理,以便教務處或老師對學生的學習情況有一個全面的了解[5]。Excel VBA是內嵌于Excel的程序開發語言,在Excel中可運行VB程序完成較復雜的工作,為了解決學生成績的重排問題,需要使用以下功能:

1) 打開VBA代碼編輯器

方法一:選擇開發工具選項卡,單擊Visual Basic按鈕

方法二:用鼠標右鍵單擊工作表標簽 ,在彈出的菜單中選擇查看代碼選項

方法三:按下快捷鍵Alt+F11

2) 創建事件過程

打開VBA代碼編輯器后,在工程資源管理器窗口中,雙擊需要編程的工作表名,在右側的代碼窗口中,首先在對象下拉列表框中選擇過程類型,本文需要對工作表操作,所以選擇worksheet類型,然后在右側事件窗口中選擇事件BeforeDoubleClick。

3) 單元格的選擇

對于單個單元格的選擇,可以使用工作表標簽名(行標,列標)的方法獲取單元格的數據,其中行標與列標均采用數字形式,且均從數字1開始編號,工作表中列標對應數字1。

對于連續的多個單元格范圍,可以使用Range(“起始單元格坐標,結束單元格坐標”),其中起始單元格對應于范圍中左上角的單元格,結束單元格對應于范圍中右下角的單元格,坐標中行列采用數字,列標采用字母形式。

4) 判斷單元格是否為空

Excel數據中往往會出現空白單元格,可以使用IsEmpty(單元格地址)進行判斷,如果指定單元格內容為0、空字符串時函數返回true,否則函數返回false。

對于空白單元格,還可以使用表達式(單元格=0)進行判斷,單元格內容為空、0、空字符串時結果為true,否則計算結果為false。

5) 刪除單元格內容

VBA中需要刪除Excel內容時,可以使用對象.delete()函數實現,其中對象可以是若干行rows(i)、若干列columns(i)、單元格范圍range(單元格范圍)、某個單元格cell(行標列標)。

3 數據重排功能算法的介紹

目前大多數教務系統的學生成績數據存儲在Excel中,由于學生成績主要是按課程進行錄入保存的,導致學生各門課程成績分布的非常散,如果想查詢某名學生所有的課程成績時非常的不方便。

為了能夠方便地查詢某名學生的所有課程成績,本文采用Excel的VBA技術對數據進行重排,使按課程排列的成績信息,變成按學生排列的成績信息,本功能的實現主要分為以下兩個階段:

1) 遍歷成績Excel數據表,對每一條成績記錄進行處理;

2) 從每條被處理記錄的下一條記錄開始,比較學號字段是否相同;

4) 如果值相同的話,則將成績與課程名添加到當前記錄的后面,并將學號值改成-1;

5) 繼續往下判斷每一條成績記錄,直到數據表末尾;

6) 再次遍歷成績Excel數據表,遇到學號值為-1的記錄進行刪除。

4 數據重排功能關鍵代碼

1) 學生成績數據的添加

i = 2

While (Not IsEmpty(Sheet1.Cells(i, 1)))

j = i + 1

k = 7

While (Not IsEmpty(Sheet1.Cells(j, 1)))

If (Sheet1.Cells(i, 1) = Sheet1.Cells(j, 1) And Sheet1.Cells(j, 1) <> -1) Then

Sheet1.Cells(i, k) = Sheet1.Cells(j, 3)

Sheet1.Cells(i, k + 1) = Sheet1.Cells(j, 5)

Sheet1.Cells(1, k) = "總評成績"

Sheet1.Cells(1, k + 1) = "課程名稱"

Sheet1.Cells(j, 1) = -1

k = k + 2

End If

j = j + 1

Wend

i = i + 1

Wend

2) 刪除重復的學生成績

i = 1

While (Not IsEmpty(Sheet1.Cells(i, 1)))

If (Sheet1.Cells(i, 1) = -1) Then

Sheet1.Rows(i).Delete

Else

i = i + 1

End If

Wend

5 結束語

目前教務系統中的學生成績老師按照課程進行存儲,不能直觀的了解學生所有課程的學習情況,為了解決這一問題,本文采用Excel自帶的VBA技術,將縱向排列的課程成績列表,改變成橫向的學生成績分布,且該功能能兼容了轉專業同學的情況。

參考文獻:

[1] 唐學軍. VBA的OFFICE操作題自動批閱技術的實現[J]. 軟件, 2014(2).

[2] 李曉玫. Excel中的VBA程序設計[J]. 四川師范大學學報, 2004(7).

[3] 李小遐. Excel VBA在辦公自動化中的應用[J]. 電子測試, 2014(11x):105-106.

[4] 張金沙. 基于VBA成績自動上傳系統的開發[J].電腦知識與技術,2016(11).

[5] 高世萍. 基于Excel函數及Excel VBA的成績分析[J]. 智能計算機與應用, 2011(1):18-19.

主站蜘蛛池模板: 首页亚洲国产丝袜长腿综合| 国产成人禁片在线观看| 免费中文字幕在在线不卡| 波多野结衣国产精品| 亚洲欧美日韩精品专区| 欧美在线伊人| 久久精品只有这里有| 国产成人一区免费观看| 亚洲人成网站色7799在线播放| 欧美成人精品欧美一级乱黄| 国产一区二区三区夜色 | 欧美激情第一欧美在线| 日本妇乱子伦视频| 99视频有精品视频免费观看| 成人在线综合| 亚洲欧美日韩成人高清在线一区| 91色在线观看| 日韩二区三区无| 免费女人18毛片a级毛片视频| 乱码国产乱码精品精在线播放| 国产在线第二页| 亚洲视频免| 91国内外精品自在线播放| 亚洲黄色片免费看| 日本欧美中文字幕精品亚洲| 中文字幕天无码久久精品视频免费| h视频在线播放| 综合网天天| 亚洲天堂.com| 亚洲午夜国产精品无卡| 日韩精品免费一线在线观看| 午夜福利免费视频| 国产在线97| 午夜精品福利影院| 九九久久99精品| 亚洲三级电影在线播放| 国产白浆在线| 国产va在线观看免费| 亚洲av无码人妻| 亚洲成A人V欧美综合| 亚洲婷婷六月| 国产中文一区a级毛片视频| 日本道综合一本久久久88| 亚欧成人无码AV在线播放| 国内熟女少妇一线天| 亚洲大尺度在线| 在线一级毛片| 2020国产免费久久精品99| 日日碰狠狠添天天爽| 国产原创第一页在线观看| 好吊妞欧美视频免费| 欧美色综合网站| 欧美在线免费| 国产午夜福利亚洲第一| 奇米影视狠狠精品7777| 美女国产在线| 欧美三级视频在线播放| 天堂成人av| 久久婷婷五月综合色一区二区| 国产h视频在线观看视频| 在线欧美一区| 亚洲欧美在线综合一区二区三区| 国产一区成人| 夜精品a一区二区三区| 国产精品乱偷免费视频| 97久久超碰极品视觉盛宴| 精品久久人人爽人人玩人人妻| 国产在线观看99| 亚洲国产欧美国产综合久久| 福利小视频在线播放| 午夜福利免费视频| 亚洲一区波多野结衣二区三区| 久久精品国产电影| 91年精品国产福利线观看久久| 国产精品手机在线观看你懂的 | 97成人在线视频| 美女一级免费毛片| 国产福利小视频在线播放观看| 欧美午夜在线观看| 精品国产一区二区三区在线观看| 欧美在线黄| 国产精品爽爽va在线无码观看|