• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VBA成績自動(dòng)上傳系統(tǒng)的開發(fā)

      2017-03-17 21:44張金沙金笛石劭紅
      電腦知識(shí)與技術(shù) 2016年32期
      關(guān)鍵詞:學(xué)生成績管理信息系統(tǒng)

      張金沙++金笛++石劭紅

      摘要:為打破成績錄入“瓶頸”,實(shí)現(xiàn)高效辦公,以Excel VBA為編程語言,結(jié)合某高校成績錄入的具體任務(wù),開發(fā)出將電子版學(xué)生成績自動(dòng)上傳到該校教務(wù)系統(tǒng)的微型配套系統(tǒng)。實(shí)際運(yùn)用結(jié)果表明,運(yùn)用VBA實(shí)現(xiàn)學(xué)生成績的自動(dòng)上傳,不僅快速準(zhǔn)確,而且高效實(shí)用,其方法值得學(xué)習(xí)和推廣。

      關(guān)鍵詞:Excel;VBA;學(xué)生成績;自動(dòng)上傳;管理信息系統(tǒng)

      中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)32-0080-03

      1 背景

      Excel VBA(Visual Basic for Applications)是內(nèi)嵌于Excel的程序開發(fā)語言,在Excel中可運(yùn)行Visual Basic程序完成較復(fù)雜的工作,實(shí)現(xiàn)高效辦公[1,2]。當(dāng)然,作為一種功能強(qiáng)大的宏語言,通過編程也能實(shí)現(xiàn)對(duì)網(wǎng)頁的操控。

      將學(xué)生的各項(xiàng)成績上傳學(xué)校教務(wù)管理信息系統(tǒng)是每個(gè)教師期末必須完成的工作。由于許多教務(wù)管理信息系統(tǒng)沒有提供批量導(dǎo)入成績的功能,老師們不得不將已經(jīng)整理好的電子成績,采取復(fù)制粘貼的方法,再次人工錄入相應(yīng)的網(wǎng)頁控件。工作重復(fù)低效,而且難免出錯(cuò)[3,4]。

      為打破成績錄入“瓶頸”,實(shí)現(xiàn)了Excel電子成績的自動(dòng)快速準(zhǔn)確上傳,本文以某高校成績錄入為例,給出基于Excel VBA成績自動(dòng)上傳系統(tǒng)的詳細(xì)開發(fā)過程。

      2 準(zhǔn)備工作

      在編寫代碼前,需要熟悉成績錄入界面、手工操作過程和界面網(wǎng)頁元素的定位屬性。網(wǎng)頁元素的定位屬性(包括id、name和索引號(hào)等)的獲得,還需借助“網(wǎng)頁按鍵精靈”等工具。在“網(wǎng)頁按鍵精靈”中打開信息系統(tǒng)成績錄入界面后可獲得圖1結(jié)果,上面窗口顯示某高校教務(wù)管理信息系統(tǒng)的成績錄入主要界面,下面窗口顯示網(wǎng)頁元素分析結(jié)果。

      圖1 成績錄入頁面元素分析

      手工錄入時(shí),在成績錄入界面可依次輸入學(xué)號(hào)(也可根據(jù)姓名提示而省略本項(xiàng))、技能、平時(shí)、期末和總評(píng)成績,點(diǎn)擊“添加記錄”,若信息系統(tǒng)存在此學(xué)號(hào),該生成績?nèi)霂?,同時(shí)顯示在界面下半部的成績表中。編程就是模擬這個(gè)人工過程。

      獲取網(wǎng)頁元素屬性,只需點(diǎn)擊要觀察的網(wǎng)頁元素,其詳細(xì)分析結(jié)果便顯示在下面窗口。本系統(tǒng)根據(jù)ID屬性定位,從圖1可見,點(diǎn)擊學(xué)號(hào)后,顯示的ID屬性為txtXh。同樣操作,獲得技能、平時(shí)、期末、總評(píng)和添加記錄的ID屬性分別為txtJncj、txtPscj、txtQmcj、txtCjInsert和btAdd。

      3 界面設(shè)計(jì)

      打開Excel,在Sheet1的A列至G列的首行輸入“序號(hào)”、“姓名”、“學(xué)號(hào)”等信息,其中前二列為校驗(yàn)信息,后五列為要上傳的信息。將H列至L列合并,插入藝術(shù)字“成績自動(dòng)上傳”。在工作表中繪制一個(gè)圓角矩形,分別設(shè)置填充效果和陰影,復(fù)制粘貼成三個(gè)并添加文字作為菜單。最后將Sheet1命名為“主界面”,將其他表單刪除,以文件名為“成績自動(dòng)上傳”保存。見圖2。

      圖2 成績自動(dòng)上傳主界面

      4 代碼編寫與錄入

      4.1 操作說明模塊

      本模塊顯示一個(gè)消息框,為教師提供操作指導(dǎo)。

      Sub Opguide()

      Dim msg As String

      msg = "1.按本表A-H列的格式組織數(shù)據(jù),首行為標(biāo)目。" & vbNewLine

      msg = msg + "2.確認(rèn)學(xué)?!俺煽冧浫搿表撁娴暮戏ㄊ跈?quán)打開。" & vbCrLf

      msg = msg + "3.點(diǎn)擊“數(shù)據(jù)檢查”,通過后再點(diǎn)“成績導(dǎo)入”。"

      MsgBox msg, vbOKOnly, "操作指南"

      End Sub

      4.2 數(shù)據(jù)檢查模塊

      數(shù)據(jù)檢查模塊分別檢查學(xué)號(hào)和成績的合法性。

      Public dataflag As Boolean '數(shù)據(jù)檢查通過標(biāo)志

      Public maxrow As Integer '數(shù)據(jù)的最大行數(shù)

      Sub Datacheck()

      Dim i As Integer, j As Integer

      Range("C1").Select 'C列為學(xué)號(hào)

      maxrow = Range("C65536").End(xlUp).Row '取得數(shù)據(jù)的最大行數(shù)

      dataflag = True

      '下面是學(xué)號(hào)合法性檢查

      For i = 2 To maxrow '數(shù)據(jù)從第二行開始

      If Len(Trim(Cells(i, 3))) = 8 Then '合法學(xué)號(hào)有8位

      Cells(i, 3).Font.Color = vbBlack '合法學(xué)號(hào)標(biāo)記為黑色

      Else

      Cells(i, 3).Font.Color = vbRed '不合法學(xué)號(hào)標(biāo)記為紅色

      dataflag = False

      End If

      Next

      '下面檢查各項(xiàng)成績的合法性

      For i = 2 To maxrow

      For j = 4 To 7 '各項(xiàng)成績

      If Cells(i, j) >= -1 And Cells(i, j) <= 100 Then '下限-1為缺考標(biāo)識(shí),0至100為考分

      Cells(i, j).Font.Color = vbBlack '合法成績標(biāo)記為黑色

      Else

      Cells(i, j).Font.Color = vbRed '不合法成績標(biāo)記為紅色

      dataflag = False

      End If

      Next

      Next

      If dataflag = False Then '數(shù)據(jù)檢查沒有通過

      MsgBox "數(shù)據(jù)檢查沒有通過,請(qǐng)修改后重新檢查!", vbOKOnly

      Else

      MsgBox "數(shù)據(jù)檢查通過,可以上傳成績!", vbOKOnly

      End If

      End Sub

      4.3 成績上傳模塊

      數(shù)據(jù)上傳網(wǎng)頁的實(shí)現(xiàn)方法雖然有較多[3,4,5],但大致分為兩步,首先尋找目標(biāo)瀏覽器窗口,以獲得操作句柄,然后利用句柄完成上傳工作。

      Sub Autoupload()

      Dim myshell as object, myshellwin as object, mywin as object,myDoc as Object

      Dim i as integer

      Dim aimflag As Boolean '目標(biāo)窗口標(biāo)志

      If dataflag = False Then

      MsgBox "數(shù)據(jù)檢查沒有通過,請(qǐng)修改后重新檢查!", vbOKOnly

      ExitSub

      End If

      第一步,獲取操作句柄

      aimflag = False

      Set myshell = CreateObject("Shell.Application") '利用shell對(duì)象尋找目標(biāo)瀏覽器窗口

      Set myshellwin = myshell.Windows '獲取全部桌面窗口

      For Each mywin In myshellwin '遍歷窗口對(duì)象并賦值給mywin

      If LCase(TypeName(mywin.document)) = "htmldocument" Then '若是瀏覽器窗口

      If InStr(1, mywin.LocationName, "成績錄入", vbTextCompare) > 0 Then '找到窗口標(biāo)題名為"成績錄入"的IE窗口

      MsgBox mywin.document.Title + "頁面已打開,上傳開始。"

      aimflag = True

      Set myDoc = mywin.document '獲得操作句柄

      End if

      End if

      If aimflag = False then

      MsgBox "成績錄入頁面沒有打開,請(qǐng)打開后操作。"

      Exit Sub

      End if

      ' 第二步,成績上傳

      For i = 2 To maxrow

      myDoc.getElementsByID("txtXh"). Value =Trim(Cells(i, 3)) '在網(wǎng)頁學(xué)號(hào)處填入電子表格的學(xué)號(hào)(C列)

      myDoc.getElementsByID("txtJncj").Value = Cells(i, 4) '填入技能成績

      myDoc.getElementsByID("txtPscj").Value = Cells(i, 5) '填入平時(shí)成績

      myDoc.getElementsByID("txtQmcj").Value = Cells(i, 6) '填入期末成績

      myDoc.getElementsByID("txtCjInsert").Value = Cells(i, 7) '填入技能成績

      myDoc.getElementsByID("btAdd").Click '點(diǎn)擊添加記錄

      Do While mywin.Busy '等待刷新結(jié)束

      Application.Wait (Now + TimeValue("0:00:01"))

      DoEvents

      Loop

      Next

      Set myshell = Nothing ' 釋放對(duì)象

      Set myshellwin = Nothing

      Set mywin = Nothing

      Set mydoc = Nothing

      End Sub

      4.4 代碼的錄入及與菜單關(guān)聯(lián)

      在Excel中,按快捷鍵Alt和F11,進(jìn)入VBA編緝器。點(diǎn)擊“插入-模塊”,模塊1便出現(xiàn)在工程中。在模塊1錄入操作說明過程Opguide()、數(shù)據(jù)檢查過程Datacheck()及成績上傳過程Autoupload(),保存,退出VBA編緝器。

      在Excel下,右擊菜單“操作說明”-“指定宏”-“Opguide”-“確定”,完成操作說明過程Opguide()代碼與菜單“操作說明”的關(guān)聯(lián)。進(jìn)行相似的操作,完成其它過程代碼與菜單的關(guān)聯(lián)。

      5 結(jié)束語

      本系統(tǒng)基于Excel VBA完美實(shí)現(xiàn)電子成績的自動(dòng)上傳,實(shí)際運(yùn)用結(jié)果表速度很快,在網(wǎng)絡(luò)正常的情況下,一分鐘內(nèi)即可完成一個(gè)班(約60人)的學(xué)生成績上傳工作,且設(shè)計(jì)相對(duì)簡單,操作十分方便,表現(xiàn)出很好的便捷性和實(shí)用性[5]。Excel是辦公室數(shù)據(jù)處理的常用軟件,VB是非專業(yè)人員常用的計(jì)算機(jī)語言,只要掌握了VB,VBA就能很快上手,因而運(yùn)用VBA開發(fā)的系統(tǒng)具有良好的可普及性和較高的推廣實(shí)用價(jià)值。

      參考文獻(xiàn):

      [1] 許小榮, 夏躍偉, 高翔, 等. Excel VBA語法與應(yīng)用手冊(cè)[M]. 北京: 電子工業(yè)出版社, 2010.

      [2] 焦萍萍, 周顯春. EXCEL中的VBA程序設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2016, 12(11): 63-64.

      [3] 劉松. 一種快速將本地教學(xué)數(shù)據(jù)上傳到網(wǎng)絡(luò)教學(xué)系統(tǒng)的方法[J]. 智能計(jì)算機(jī)與應(yīng)用, 2013, 3(3): 93-94, 封3.

      [4] 江治. 利用VBA實(shí)現(xiàn)網(wǎng)頁中自動(dòng)錄入成績[J]. 安慶師范學(xué)院學(xué)報(bào):自然科學(xué)版, 2010, 16(3): 124-127.

      [5] 張正. 表單批量自動(dòng)填寫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)與現(xiàn)代化, 2013(2): 169-172.

      猜你喜歡
      學(xué)生成績管理信息系統(tǒng)
      淺析數(shù)據(jù)挖掘技術(shù)在學(xué)生管理系統(tǒng)中的應(yīng)用
      兰考县| 霍城县| 开远市| 若尔盖县| 宁化县| 射洪县| 鲁山县| 当阳市| 寿阳县| 武定县| 连州市| 肇源县| 冕宁县| 繁昌县| 平凉市| 和龙市| 尖扎县| 尉氏县| 铁岭市| 华阴市| 青冈县| 凭祥市| 沧州市| 齐齐哈尔市| 涿鹿县| 上蔡县| 榆中县| 启东市| 水城县| 阳原县| 达拉特旗| 大田县| 南郑县| 南京市| 双柏县| 乌兰察布市| 绥棱县| 黑水县| 元谋县| 武清区| 邯郸县|