劉德飛++周利平++趙磊++李奎
摘 要:ExcelVBA是Excel基于VB開發(fā)的腳本語言。它具有強大的Excel使用擴展功能,完全可實現(xiàn)Excel中的查詢統(tǒng)計;同時可提高辦公中Excel的使用效率。單獨招生錄取查詢統(tǒng)計僅是招生錄取中一個小環(huán)節(jié),沒有必要使用較高成本開發(fā)系統(tǒng)軟件實現(xiàn)查詢統(tǒng)計功能。ExcelVBA可在查詢中大大提高工作效率,實現(xiàn)多人共同統(tǒng)計,設計和開發(fā)該系統(tǒng)對ExcelVBA的擴展運用有一定的探索實踐作用。
關(guān)鍵詞:ExcelVBA 單獨招生錄取 查詢統(tǒng)計 查詢系統(tǒng) 統(tǒng)計系統(tǒng)
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2016)11(b)-0017-02
1 問題背景
云南機電職業(yè)技術(shù)學院位于云南昆明,是一所以機電專業(yè)為主要培養(yǎng)對象的高職院校,被評為“云南省省級示范性高等職業(yè)院?!迸c“國家示范性高等職業(yè)院校”的骨干高職院校,具備云南省單獨招生資格,報考考生較多、競爭激烈,因此做好考生的招生服務顯得更為重要。
考生通過筆試、面試后學院會將名單通過單獨招生考試網(wǎng)發(fā)布給各位考生;因考生可以同時報考多所學校,所以必須由考生確認是否選擇該校就讀,并通過傳真的方式回傳到學院招生就業(yè)辦公室,通過傳統(tǒng)的統(tǒng)計、收集Excel、逐個查詢錄入系統(tǒng);當考生需要查詢時,又返回查詢。具有工作量大、效率不高、不易查詢等特點,又因為就招生這個小環(huán)節(jié)還沒有必要開發(fā)大型系統(tǒng)進行查詢統(tǒng)計,所以筆者探究用ExcelVBA的同一界面完成兩項功能,期望完成對傳統(tǒng)查詢的改善,提高工作效率。
2 ExcelVBA簡介
在Office對于一些煩瑣、重復的操作,用戶可以通過“宏”來實現(xiàn)?!昂辍笔怯梢幌盗兄噶罱M合而成的命令集,其本質(zhì)是VBA代碼組成的程序。VBA是微軟在其開發(fā)的應用程序中共享的通用自動化語言。
Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,是微軟開發(fā)出來在其桌面應用程序中執(zhí)行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程式功能,特別是Microsoft Office軟件。也可說是一種應用程式視覺化的Basic腳本。該語言于1993年由微軟公司開發(fā)的應用程序共享一種通用的自動化語言——Visual Basic For Application(VBA),實際上VBA是寄生于VB應用程序的版本。微軟在1994年發(fā)行的Excel5.0版本即具備了VBA的宏功能。
3 系統(tǒng)設計思路
系統(tǒng)開發(fā)一般由以下幾個步驟組成:問題分析、需求分析、軟件設計、程序編碼、軟件測試組成。
由于筆者是系統(tǒng)的使用者和開發(fā)者,常年從事招生工作,熟悉該校招生中會出現(xiàn)的一些問題和需求。在設計和編碼階段通過積極思考,如果使用過程中出現(xiàn)錯誤完全可實時進行調(diào)試和測試。該文僅從實現(xiàn)系統(tǒng)的一些核心模塊進行設計,更好地實現(xiàn)預期效果。主要核心設計模塊如下。
4 系統(tǒng)模塊開發(fā)與實現(xiàn)
4.1 前臺界面的設計與實現(xiàn)
準考證號文本框及查詢按鈕,用于識別考生個人信息。點擊查詢按鈕可通過對Excel表格數(shù)據(jù)的查詢,顯示考生的姓名、性別、考分,擬錄取專業(yè)和是否收到傳真,逐一進行核對。
當收到考生傳真時,在“是否就讀”的文本框輸入“是”或“否”,點擊“確認”按鈕以確認對考生傳真的收取。
點擊“清除”按鈕可以清空文本框內(nèi)容,也可以修正一下信息。圖1是前臺設計顯示效果。
4.2 兩個主要模塊的源代碼
4.2.1 查詢模塊
Public Sub find_Click()
Dim rng As Range
With ActiveSheet
For Each rng In [b2:b1819] //查詢數(shù)據(jù)的范圍
If rng.Text = tzkzh.Text Then //比對準考證號給相關(guān)的內(nèi)容顯示信息
xzkzh1 = tzkzh.Text
xm1 = rng.Offset(0, 1).Text
xb1 = rng.Offset(0, 2).Text
mscj1 = rng.Offset(0, 3).Text
kf1 = rng.Offset(0, 3).Text
pm1 = rng.Offset(0, 4).Text
lqzy1 = rng.Offset(0, 5).Text
sfjd1 = rng.Offset(0, 6).Text
bz1 = rng.Offset(0, 7).Text
lxdh1 = rng.Offset(0, 11).Text
time1 = rng.Offset(0, 8).Text
tj1 = rng.Offset(0, 9).Text
End If
Next
End With
End Sub
4.2.2 確認統(tǒng)計模塊
Private Sub confirm_Click()
Dim rng As Range, rng1 As Range, m As Integer, n As Integer, k As Integer, l As Integer
With ActiveSheet
For Each rng In [b2:b1890] //查詢范圍
If rng.Text = tzkzh.Text Then
rng.Offset(0, 6) = sfjd1
rng.Offset(0, 7) = bz1
rng.Offset(0, 8) = Now
rng.Offset(0, 9) = tj1
End If
Next
If Len(sfjd1.Text) And Len(tj1.Text) > 0 Then
MsgBox "輸入正確"http://進行數(shù)據(jù)較驗
Else
MsgBox "確認時是否就讀或是否服從調(diào)劑不能為空值"
End If
For Each rng1 In [h2:h1890] //數(shù)據(jù)統(tǒng)計的實現(xiàn)
If rng1 = "是" Then
m = m + 1
ElseIf rng1 = "否" Then
n = n + 1
Else
k = k + 1
End If
Next
Label17 = m
Label18 = n
wfcz1 = k
End With
End Sub
5 結(jié)語
通過設計基本解決了提出的問題,同時還具備以下幾個優(yōu)點。
(1)無需安裝數(shù)據(jù)庫。巧妙地把Excel表格中的數(shù)據(jù)作為原始數(shù)據(jù),操作方便、使用便捷、易于不太熟悉計算機的使用者單機使用。
(2)友好輸入界面。界面具有良好的互動性和糾錯功能,防止輸入錯誤并糾錯,實踐證明比實際在Excel中錄入數(shù)據(jù)的效率提高了。
當然在使用中也存在一些不足,鑒于ExcelVBA的局限性,功能還算是很強大。筆者也將繼續(xù)努力在后期不斷完善,力爭把ExcelVBA的功能在工作中做更多擴展。
參考文獻
[1]何非,葉萃娟.Excel VBA高效辦公從入門到精通[M].北京: 中國青年出版社,2008.
[2]羅剛君.Exclel VBA程序開發(fā)自學寶典[M].北京:電子工業(yè)出版社,2009.