談曉曉 上海鐵路局科研所
運用VBA對超偏載檢測裝置期間核查數據的處理
談曉曉 上海鐵路局科研所
介紹運用 Microsoft Excel 2007(以下簡稱:Excel)中的Visual Basic for Application(以下簡稱:VBA)功能,編寫一段自動處理數據的程序代碼。該程序可根據輸入的列車過衡數據,自動計算誤差、判斷是否超差和統計合格數量等,能夠提高超偏載檢測裝置(以下簡稱:超偏載)期間核查數據處理效率,從而減輕工作負擔。
VBA;程序代碼;自動處理數據
根據JJF(鐵道)606-2011《鐵道貨車超偏載檢測裝置期間核查規范》(以下簡稱:期間核查規范)的要求,為確認超偏載示值誤差是否滿足要求,在兩次周期檢定之間,須對超偏載進行不少于1次的期間核查。
本部門利用現有檢定資源——檢衡車標準裝置(以下簡稱:檢衡車)在超偏載上通過時產生過衡數據,每月遠程對其進行收集處理,來完成對超偏載設備稱量性能的期間核查(在現有檢定資源的限制下無法完成對偏載和偏重的期間核查)。超偏載期間核查數據最大允許誤差的要求見表1,以遠程核查最大允許誤差為準。

表1 超載測試總重最大允許誤差
使用鐵科院電子所制作的《鐵路貨運計量安全檢測監控系統》(以下簡稱:監控系統),可以通過追蹤檢衡車車號獲得其過衡數據,然后利用Excel將數據與標準值進行比較,來判斷超偏載設備是否處于良好的工作狀態。(需要特別指出的是,監控系統自帶期間核查功能,但由于標準器的質量發生變化后,監控系統只保留最新的標準值,因此對標準值變化前的過衡數據進行的誤差計算全都是錯誤和無效的,故不推薦使用。)
可以設想一下整個比較過程,首先將過衡數據復制到Excel中,然后找出相應檢衡車車號處于有效期內的標準值,將標準值與過衡數據中的總重進行比較,計算出誤差,最后判斷是否超差,并注明。如果這些工作全部通過手動處理,不僅耗時耗力,還十分容易出錯。因此我們可以借助Excel中的VBA功能來完成自動計算誤差、判斷是否超差和統計合格數量等工作,從而提高超偏載期間核查數據處理效率,減輕工作負擔。
由于Excel在默認使用狀態下,其自帶的VBA功能是關閉的,所以首先需要做的就是開放VBA功能。打開方式是:點擊Excel軟件界面的左上角 圖標,點擊“Excel選項”,在“常用”選項欄中勾選“在功能區顯示‘開發工具’選項卡”,點擊確認。這樣,在功能區就會出現“開發工具”標簽。利用其中的Visual Basic(for Application)編寫代碼,可以對Excel中的單元格數據進行操作、計算和統計。
3.1 填寫相關數據
首先將需要進行計算處理的數據從監控系統復制到Excel中,在此不妨將工作表名稱改成“期間核查數據”。由于監控系統中的原始過衡數據包含許多不必要的字段,因此本文只選取其中幾項必要的字段進行敘述(見表2,其中最后四項字段是需要通過編寫VBA程序代碼自動處理填寫的)。
由于檢衡車的標準值會發生改變,故再新建一個“標準值”工作表,用來記錄不同檢衡車在不同有效期內的標準值(見表3)。

表2 過衡數據

表3 標準值字段
3.2 制作代碼觸發按鈕
編寫的代碼可以設置成通過點擊某一文檔元件來觸發。在這里我們繪制一個“矩形”來觸發代碼,然后右鍵單擊繪制的矩形,點擊“指定宏”,點擊“新建”,這樣就進入了代碼編寫界面,可以看到系統自動為我們寫好了如下兩句代碼。
Sub矩形1_Click()
End Sub
而我們編寫的所有代碼均須寫在上面給兩行代碼之間。這樣,通過點擊矩形,就能執行編寫的代碼。
為了分別實現數據分析和數據統計功能,不妨將上述矩形單獨作為數據處理的觸發按鈕,而另外繪制一個矩形,單獨作為數據統計的觸發按鈕。
4.1 數據處理代碼編寫思路
利用循環語句,對每一條過衡數據進行:
(1)尋找填寫標準值;
(2)計算誤差;
(3)判斷是否超差等工作。
4.1.1 標準值的填寫
根據表2中不同檢衡車的“通過時間”以及“車號”信息,在“標準值”工作表中尋找對應的、在有效期內的標準值,并賦值到相應單元格內。
4.1.2 誤差計算
根據總重和標準值,分別計算出絕對誤差和相對誤差。
4.1.3 數據判斷
根據過衡速度和誤差,以及表1的規定最大允許誤差,判斷是否超差或者過車速度不符合要求。
4.2 數據統計代碼編寫思路
利用循環語句,分別統計過車總條數和無效數(過車速度不符合要求以及超出標準器有效期),計算兩者之差即為有效數;然后根據誤差大小,判斷統計超差數;將有效數減去超差數,即為合格數;計算出合格率=(合格數/有效數)*100%,最后用Msgbox將統計結果顯示出來。
5.1 數據處理源代碼

5.2 數據統計源代碼

圖1為數據處理結果,圖2為數據統計結果。

圖1 數據處理結果

圖2 數據統計結果
VBA功能可以在各種數據統計中得到廣泛地應用。它不僅能夠提高工作效率,降低勞動強度,同時也可以減少人為因素造成的各種錯誤。因此,在實際工作中值得推廣使用。
責任編輯:許耀元
來稿日期:2016-09-01