董 娟
(昆明冶金高等專科學(xué)校冶金與礦業(yè)學(xué)院,云南 昆明 650033)
黨的十九大報(bào)告指出,要“健全學(xué)生資助制度,使絕大多數(shù)城鄉(xiāng)新增勞動(dòng)力接受高中階段教育、更多接受高等教育”[1]。2017年4月,教育部辦公廳印發(fā)了《關(guān)于開展“全國學(xué)生資助規(guī)范管理年”活動(dòng)的通知》(教財(cái)函〔2017〕27號(hào))[2],明確要求各高校要“建立學(xué)生資助檔案管理制度,規(guī)范學(xué)生資助檔案的收集、整理、保管、使用與銷毀等工作,探索學(xué)生資助檔案管理電子化”。家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定數(shù)據(jù)電子化,成為新時(shí)期學(xué)生資助工作的重要內(nèi)容[3]。
由于信息管理安全性和準(zhǔn)確性需要,學(xué)工系統(tǒng)困難學(xué)生管理權(quán)限并沒有下放給學(xué)院輔導(dǎo)員和申請(qǐng)學(xué)生,申請(qǐng)家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定的學(xué)生信息需要用Excel表格匯總,按班級(jí)提交給學(xué)院輔導(dǎo)員,輔導(dǎo)員匯總班級(jí)表單形成學(xué)院匯總表單上交學(xué)校學(xué)生處資助管理中心?,F(xiàn)有的家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定工作信息采集流程如圖1所示。數(shù)據(jù)從學(xué)生填寫到最終上傳提交至學(xué)工系統(tǒng),人為參與過程較多,存在數(shù)據(jù)校驗(yàn)、數(shù)據(jù)審核、數(shù)據(jù)匯總等環(huán)節(jié)工作量大、數(shù)據(jù)準(zhǔn)確性不能保證等現(xiàn)實(shí)問題。采用信息化辦公技術(shù)提升信息正確性、減少工作量,提高學(xué)院無紙化辦公水平的問題亟待解決。
圖1 家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定信息采集流程圖 Fig.1 Flow chart of identification information collection for students from poor families
Office軟件是目前應(yīng)用最為成功的辦公軟件,其中Excel可以提供數(shù)據(jù)統(tǒng)計(jì)、匯總等功能。VBA(Visual Basic for Applications)是建立在Office中的一種應(yīng)用程序開發(fā)工具,可以有效擴(kuò)展Excel功能,設(shè)計(jì)和構(gòu)建人機(jī)交互界面,打造自己的管理系統(tǒng),幫助Excel用戶更有效地完成一些基本操作任務(wù)[4-7]。
VBA編程技術(shù)宏命令可以實(shí)現(xiàn)數(shù)據(jù)檢查報(bào)警、多表格數(shù)據(jù)匯總功能,加速日常編輯和格式設(shè)置,組合多個(gè)命令,使對(duì)話框中的選項(xiàng)易于訪問,實(shí)現(xiàn)一系列復(fù)雜任務(wù)自動(dòng)執(zhí)行等[8-10]。具體功能包括:1)使重復(fù)的任務(wù)自動(dòng)化;2)自定義Excel工具欄、菜單和界面;3)簡(jiǎn)化模板的使用;4)自定義Excel使其成為開發(fā)平臺(tái);5)創(chuàng)建報(bào)表;6)對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的操作和分析[10]。
使用VBA編程技術(shù)開發(fā)數(shù)據(jù)匯總功能主要包括數(shù)據(jù)表目錄添加、判斷目錄是否正確、匯總數(shù)據(jù)等基本功能,功能流程圖如圖2所示。項(xiàng)目設(shè)計(jì)實(shí)施過程包括設(shè)計(jì)數(shù)據(jù)表和匯總表表頭標(biāo)題行、搜集各班數(shù)據(jù)、采用VBA編程技術(shù)研究各項(xiàng)功能實(shí)現(xiàn)、進(jìn)行程序測(cè)試、檢查程序測(cè)試是否正常、匯總數(shù)據(jù)和進(jìn)行數(shù)據(jù)上報(bào)等,項(xiàng)目設(shè)計(jì)實(shí)施流程圖如圖3所示。
圖2 功能流程圖Fig.2 Functional flow chart圖3 項(xiàng)目設(shè)計(jì)實(shí)施流程圖Fig.3 Project design and implementation flow chart
本案例中要求匯總某高職院校49個(gè)班級(jí)的家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定班級(jí)初審表,文件名稱含班級(jí)名稱,工作表主體部分從學(xué)校學(xué)工系統(tǒng)導(dǎo)出模板,根據(jù)實(shí)際情況添加班級(jí)和學(xué)生聯(lián)系電話列。表頭結(jié)構(gòu)格式固定、統(tǒng)一,數(shù)據(jù)均填寫在工作簿第一頁工作表中。各班的人數(shù)不同,每個(gè)班通過班級(jí)初審人數(shù)不同,即每個(gè)表格中的數(shù)據(jù)記錄行數(shù)不同,但每個(gè)學(xué)生填寫的數(shù)據(jù)項(xiàng)相同。通過VBA數(shù)據(jù)匯總功能實(shí)現(xiàn)對(duì)49個(gè)文件的匯總,即輸入49個(gè)文件存放的目錄,逐一打開表格,復(fù)制文件中的初審數(shù)據(jù),粘貼到匯總表中,如圖4所示。
2.2.1 設(shè)計(jì)思路
在使用VBA編程實(shí)現(xiàn)數(shù)據(jù)匯總的過程中,加入窗體控件的交互設(shè)計(jì),使程序適用性更強(qiáng),使用更方便。具體設(shè)計(jì)思路如下。
1)準(zhǔn)備工作。將49個(gè)班級(jí)上報(bào)的工作簿存放于一個(gè)文件夾中,匯總工作簿(XX學(xué)校XX學(xué)院家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定班級(jí)初審VBA數(shù)據(jù)匯總.xls)放在其他文件夾下,將設(shè)計(jì)好的表頭標(biāo)題行拷貝到匯總工作簿第一個(gè)工作表第一行。匯總工作表和49個(gè)班級(jí)初審數(shù)據(jù)文件表頭標(biāo)題行一致,分別為:序號(hào)、學(xué)號(hào)、姓名、班級(jí)、困難生等級(jí)、認(rèn)定原因、認(rèn)定學(xué)生手機(jī)號(hào)、備注。
2)匯總文件路徑參數(shù)傳遞。用戶能通過文本框輸入49個(gè)班級(jí)初審文件所在文件夾路徑,點(diǎn)擊窗體控件上的“寫入?yún)R總數(shù)據(jù)目錄”按鈕將文件夾路徑參數(shù)寫入程序。
3)數(shù)據(jù)匯總。用戶點(diǎn)擊“數(shù)據(jù)匯總”按鈕,程序即開始依次讀取指定文件夾中所有xls或xlsx文件中的數(shù)據(jù)并順序存儲(chǔ)到匯總表中,點(diǎn)擊“數(shù)據(jù)匯總”按鈕,調(diào)用模塊函數(shù)SummaryData匯總數(shù)據(jù)。這是VBA編程主要部分,主要過程為:程序讀取用戶輸入的文件存放路徑,根據(jù)文件夾路徑遍歷文件夾下的每一個(gè)xls或xlsx文件,依次打開工作簿,復(fù)制工作簿的第一個(gè)表中除第一行標(biāo)題行以外的所有數(shù)據(jù)并粘貼到匯總文件中A列即第一列沒有數(shù)據(jù)的區(qū)域內(nèi)。直到將所有文件的數(shù)據(jù)復(fù)制到匯總表中。
4)清除匯總內(nèi)容。為了方便用戶多次匯總,設(shè)置了清除匯總內(nèi)容按鈕。當(dāng)點(diǎn)擊清除匯總內(nèi)容按鈕,程序自動(dòng)將匯總表表頭標(biāo)題行以下的所有數(shù)據(jù)刪除,此時(shí)再點(diǎn)擊匯總數(shù)據(jù)按鈕程序仍能自動(dòng)匯總指定目錄下的xls或xlsx文件。
2.2.2 界面控件設(shè)置
在匯總表第一個(gè)工作表中設(shè)計(jì)一個(gè)開始數(shù)據(jù)匯總命令按鈕,命令按鈕名稱屬性:SummaryDataBegin,點(diǎn)擊該按鈕后彈出數(shù)據(jù)匯總窗口屬性名稱:UserForm_SummaryData,數(shù)據(jù)匯總窗口設(shè)置一個(gè)文本框,名稱屬性為:TextBox_FilePath。4個(gè)命令按鈕名稱屬性分別為:CommandButton_writePath,CommandButton_SummaryData,CommandButton_clearData,CommandButton_Close。界面控件布局如圖5所示。
圖5 程序界面布局圖 Fig.5 Program interface layout
2.2.3 主要過程、函數(shù)代碼功能
1) 點(diǎn)擊開始數(shù)據(jù)匯總按鈕,打開數(shù)據(jù)匯總窗口代碼如下:
Private Sub SummaryDataBegin_Click()
UserForm_SummaryData.Show
End Sub
2)數(shù)據(jù)匯總通過文本框輸入?yún)R總文件路徑,點(diǎn)擊寫入?yún)R總數(shù)據(jù)目錄,程序獲得數(shù)據(jù)文件目錄參數(shù),點(diǎn)擊匯總數(shù)據(jù),調(diào)用SummaryData模塊函數(shù)匯總49個(gè)班級(jí)的初審數(shù)據(jù)。
寫入?yún)R總數(shù)據(jù)目錄代碼如下:
Private Sub CommandButton_writePath_Click()
dataPath = TextBox_FilePath.Text
If Dir(dataPath, vbDirectory)=“” Then
‘判斷文件路徑是否存在
MsgBox“您輸入的文件路徑有誤請(qǐng)重新 輸入!”
Else
MsgBox“請(qǐng)核對(duì)您輸入的文件路徑,若正確請(qǐng)點(diǎn)擊匯總數(shù)據(jù)按鈕匯總數(shù)據(jù),若不正確請(qǐng) 重新輸入?!?& dataPath
End If
End Sub
匯總數(shù)據(jù)調(diào)用程序如下:
Private Sub CommandButton_SummaryData_Click()
Call 合并工作簿.SummaryData
MsgBox“數(shù)據(jù)匯總已完畢!謝謝使用!”
SummaryData模塊函數(shù)如下:
Public dataPath As String
Sub SummaryData()
Dim myfile, mypath,wb ‘聲明變量
Application.ScreenUpdating = False ‘關(guān)閉屏幕更新
ActiveSheet.UsedRange.Offset(1, 0).Clear ‘清除當(dāng)前表頭之外的所有內(nèi)容
mypath = dataPath
myfile = Dir(mypath & “〔.xls*”) ‘遍歷班級(jí)文件夾下的Excel文件
Do While myfile <>“” ‘當(dāng)找到的文件不為空時(shí)
If myfile <> ThisWorkbook.Name Then ‘當(dāng)找到的文件不是當(dāng)前Excel工作簿時(shí)
Set wb = GetObject(mypath & “” & myfile) ‘得到Dir找到的工作簿的內(nèi)容,設(shè) 為wb
With wb.Sheets(1) ‘對(duì)找到的工作簿的sheet1進(jìn)行操作
UsedRange.Offset(1, 0).Copy ActiveSheet.Range("A" &
ActiveSheet.UsedRange.Rows.Count + 1)
‘復(fù)制wb的sheet1除第一行的所有內(nèi)容到當(dāng)前工作表
End With
wb.Close False ‘關(guān)閉wb工作簿且不保存
End If
myfile = Dir ‘尋找下一個(gè)Excel工作簿
Loop
Application.ScreenUpdating = True '恢復(fù)屏幕更新
End Sub
3)點(diǎn)擊清除匯總數(shù)據(jù)按鈕清除匯總數(shù)據(jù),代碼如下:
Private Sub CommandButton_clearData_Click()
ActiveSheet.UsedRange.Offset(1, 0).Clear ‘清除當(dāng)前表頭之外的所有內(nèi)容
MsgBox“匯總數(shù)據(jù)已清除,謝謝使用!”
End Sub
4)點(diǎn)擊關(guān)閉按鈕關(guān)閉匯總數(shù)據(jù)窗口,代碼如下:
Private Sub CommandButton_Close_Click()
Unload Me
End Sub
高職院校家庭經(jīng)濟(jì)困難學(xué)生資助工作任務(wù)重、責(zé)任大,傳統(tǒng)的學(xué)生信息采集采用手工錄入、人員檢查、手動(dòng)復(fù)制粘貼匯總表格的方式存在很多問題,難以高效準(zhǔn)確地完成信息采集和匯總?cè)蝿?wù)。通過Excel VBA編程技術(shù)實(shí)現(xiàn)的數(shù)據(jù)匯總功能,減少了人為操作過程中的失誤,降低了工作人員工作量,提高了數(shù)據(jù)匯總質(zhì)量。該方法有效提高了輔導(dǎo)員工作效率,提升了學(xué)校辦公信息化技術(shù)水平,對(duì)高職院校家庭經(jīng)濟(jì)困難學(xué)生認(rèn)定工作從業(yè)人員具有很好的推廣價(jià)值。