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

基于VBA的學(xué)生成績數(shù)據(jù)重排功能的設(shè)計與實現(xiàn)

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

羅良夫+張麗

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

關(guān)鍵詞:Excel;VBA;數(shù)據(jù)重排

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

1 VBA概述

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

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

2 Excel VBA常用功能介紹

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

1) 打開VBA代碼編輯器

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

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

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

2) 創(chuàng)建事件過程

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

3) 單元格的選擇

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

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

4) 判斷單元格是否為空

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

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

5) 刪除單元格內(nèi)容

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

3 數(shù)據(jù)重排功能算法的介紹

目前大多數(shù)教務(wù)系統(tǒng)的學(xué)生成績數(shù)據(jù)存儲在Excel中,由于學(xué)生成績主要是按課程進(jìn)行錄入保存的,導(dǎo)致學(xué)生各門課程成績分布的非常散,如果想查詢某名學(xué)生所有的課程成績時非常的不方便。

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

1) 遍歷成績Excel數(shù)據(jù)表,對每一條成績記錄進(jìn)行處理;

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

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

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

6) 再次遍歷成績Excel數(shù)據(jù)表,遇到學(xué)號值為-1的記錄進(jìn)行刪除。

4 數(shù)據(jù)重排功能關(guān)鍵代碼

1) 學(xué)生成績數(shù)據(jù)的添加

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) 刪除重復(fù)的學(xué)生成績

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 結(jié)束語

目前教務(wù)系統(tǒng)中的學(xué)生成績老師按照課程進(jìn)行存儲,不能直觀的了解學(xué)生所有課程的學(xué)習(xí)情況,為了解決這一問題,本文采用Excel自帶的VBA技術(shù),將縱向排列的課程成績列表,改變成橫向的學(xué)生成績分布,且該功能能兼容了轉(zhuǎn)專業(yè)同學(xué)的情況。

參考文獻(xiàn):

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

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

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

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

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

主站蜘蛛池模板: 日韩国产精品无码一区二区三区 | 91久久偷偷做嫩草影院电| 亚洲第一成年人网站| 国产男女免费完整版视频| 中文字幕欧美日韩高清| 国产网站黄| 四虎影视国产精品| 国产白浆在线| 国产精品视频系列专区| 一级成人欧美一区在线观看| 亚洲一级无毛片无码在线免费视频| 亚洲人成成无码网WWW| 波多野结衣的av一区二区三区| 日本人又色又爽的视频| 国产精品久久久久久久久久久久| 69av在线| 999精品视频在线| 亚洲成a人片77777在线播放 | 亚洲熟女偷拍| 香蕉国产精品视频| 国产国拍精品视频免费看| 成人字幕网视频在线观看| 国产成人无码综合亚洲日韩不卡| 视频二区欧美| 中文字幕资源站| 欧美a级完整在线观看| 91原创视频在线| 国产农村妇女精品一二区| 日本亚洲最大的色成网站www| 久青草网站| 欧美成人看片一区二区三区 | 国产精品私拍99pans大尺度| 伊人久久精品无码麻豆精品| 一区二区午夜| 香蕉久久国产超碰青草| 国产在线无码av完整版在线观看| 在线观看免费AV网| 91精品啪在线观看国产91| 中文字幕 91| 五月天久久综合| 亚洲一区二区三区国产精华液| 日韩欧美中文字幕在线精品| 亚洲国产亚洲综合在线尤物| 国产精品浪潮Av| 精品国产aⅴ一区二区三区| 久久不卡精品| 激情在线网| 精品一区二区三区四区五区| 国产真实乱了在线播放| 婷婷在线网站| 91精品国产无线乱码在线| 亚洲第一区精品日韩在线播放| 波多野结衣国产精品| 99爱视频精品免视看| 欧美中文一区| 色综合久久88色综合天天提莫 | 欧美国产另类| 欧美国产日韩一区二区三区精品影视| 亚洲二三区| 亚洲综合一区国产精品| 欧美成人一区午夜福利在线| 91www在线观看| 亚洲精品无码AⅤ片青青在线观看| 一级在线毛片| 欧美日韩中文国产| 久草视频福利在线观看 | 精品亚洲欧美中文字幕在线看| 国产欧美日韩精品综合在线| 亚洲成网站| 91热爆在线| 国产高清又黄又嫩的免费视频网站| 全免费a级毛片免费看不卡| 67194亚洲无码| 久久综合结合久久狠狠狠97色| 精品一区二区无码av| 99re66精品视频在线观看 | 午夜一级做a爰片久久毛片| 国产在线一区二区视频| 国产国语一级毛片| 很黄的网站在线观看| 97在线观看视频免费| 女人18毛片水真多国产|