胡永紅,劉修理
(貴州電網有限責任公司遵義供電局,貴州 遵義563000)
筆者在供電所營業(yè)班工作中,因每月重復制作多點用電客戶電量電費清單中遇到的制作速度慢、錯誤率高等問題,導致客戶不能及時交費,給供電所帶來電費結零及客戶投訴的風險。傳統的清單制作方法是在系統中查出單戶的電量、電費、抄表、預收等信息進行手工復制粘貼,這種方法非常簡單,適用于用戶數在30 戶以下的清單,對超出30 戶或100 行以上的清單,易出現漏戶、數據錯誤、格式不統一等問題。而VBA編程處理多表格數據,能夠滿足簡單、快捷制作客戶用電清單的要求。
清單中客戶要求主要數據有:用戶編號、用戶名稱、起止表碼、倍率、電量、退補(差錯)電量、單價、電費以及客戶的備注等信息。這些數據分別來源于營銷系統中導出的電價明細、抄表區(qū)段、用電客戶信息、運行電能表臺賬信息、電量電費明細信息、表碼信息、預收明細、用戶欠費明細信息等表格中。
實現快速制作一個清單表格文件,首先應確定所有用戶編號(清單列表)作為生成清單的基礎。再根據清單列表中的用戶編號在用電客戶信息表中提取用戶名,在表碼信息表中提取起止表碼及倍率,電量電費明細信息表中提取電量及退補信息,運行電能表臺賬信息表、電價明細、所用電價表中提取單價,用戶欠費明細信息表中提取該戶當月應繳電費,用戶備注表中提取相關備注數據。
該程序主要處理數據批量導入并利用表格間數據關系形成電價與電費年月,快速生成獨立的清單表格并分檔保存。并設置登錄界面確定制表人及供電單位。
為了實現多表格批量分別導入,使用With CreateObject("scripting.filesystemobject")語句引用FSO 對象,用For Each file In .getfolder(ThisWorkbook. Path & "data").Files 語句遍歷文件夾所有符合條件的文件進行導入。
數據導入完成后,應進行電價賦值處理,使程序中使用的電價與系統電價一致,為了直觀地查看各戶電價,將電價值附加在運行電能表明細信息表后,因電價在一段時間內是相對固定的,所以,所用電價不必要每月進行導入,只處理運行電能表明細信息表中對應的電價數據。
為便于修改,需要有一個固定格式的清單模板表格。表后可加入核對用戶預收情況、運行狀態(tài)、手工平衡加減電量等數據,對于有階梯的用戶在集團用戶中約占0.1%左右,本程序不進行階梯數據處理,可以在模板后加注是階梯類別進行區(qū)分,單獨進行手工處理(待進行下一版本開發(fā)時再完善相關功能)。在清單程序生成表格的過程中利用頁面設置中PrintArea屬性確定打印區(qū)域,使表后的備注信息不出現在打印輸出中。
為了實現用戶分組生成清單,應制作一個用戶分組的清單列表,由于表格是每月變化的,所以本程序的調用過程實現中不采用按鈕進行操作,設置為雙擊(Worksheet_BeforeDoubleClick 事件)相應單元格來完成操作代碼過程。
為保證清單100%正確,在程序設計時也要考慮人工核對處理環(huán)節(jié)。為了不出現誤操作,在批量導入、注銷、生成清單、批量變更電價等關鍵位置設置確認對話框,比如:是否采用批量導入(如:
If MsgBox("用電客戶信息、運行電能表臺賬信息、電量電費明細信息、表碼信息、預收明細查詢、抄表區(qū)段、用戶欠費明細信息" & ThisWorkbook.Path & "下保存有相同格式表格", vbOKCancel,"程序員的提示!") = vbOK Then)、是否更新電價、是否直接生成清單表等,確保生成的清單滿足客戶的要求。
這一基于VBA的用電清單嵌入式應用程序,雖然是一個簡單制作清單的程序,但是,對于從未接觸過VBA的人來說操作也有一定難度,所以在程序中應設計一個簡單的用戶操作指引,并在指引中實現導入、統計工作表及切換用戶(注銷)等功能。
程序中利用Move 事件控制各表的順序,使得操作起來能習慣,提高使用效率,具體實現該功能的代碼如下:
用Delete 事件對程序不需要的表格進行清理刪除,保持程序每次打開時表格數為指定的必要表格,避免出現多余的表格,造成程序出錯或進入死循環(huán)。實現其功能的代碼如下:
為防止未經保存退出造成數據丟失,在Workbook_BeforeClose 模塊中加入存盤代碼進行保存。代碼如下:
該代碼應用到打開和保存模塊中,使得每一次打開程序或執(zhí)行保存操作時對程序中的表格進行一次整理。
使用清單程序制作清單后,收到了明顯的效果,2020年12月,供電所清單制作平均耗時47 min,相對傳統方法制作清單的供電所每月平均制作清單時長2392 min基礎上效益提升了51倍。
掌握了VBA,可以發(fā)揮以下作用:規(guī)范用戶的操作,控制用戶的操作行為;操作界面人性化,方便用戶的操作;多個步驟的手工操作通過執(zhí)行VBA代碼可以迅速的實現;實現一些VB 無法實現的功能。用VBA 制做WPA 登錄系統。利用VBA 可以WPA內輕松開發(fā)出功能強大的自動化程序。
在供電所推廣VBA的應用,不僅是在制作清單程序上的應用,這種應用的開展有助于供電所人員在工作中利用新方法、新的思維方式解決工作的難點問題,也有助于推進精益化項目的提煉和項目的實用性提升,真正達到開展精益項目成果推廣的意義。
VBA應用于WPS的各應用程序中,極大地提升了WPS的應用開發(fā)能力,VBA成了許多高級用戶及開發(fā)人員開拓WPS中各應用程序功能的最有力的工具,本文主要對基于VBA的“用電清單”嵌入式應用程序的核心部份進行了闡述,促進VBA在供電所中推廣應用,以提高員工的工作效益。