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