王渝鑫 杜虹
摘 要:隨著海洋石油的發(fā)展,海洋石油生產(chǎn)一線平臺所需要進行錄入、分析的報表數(shù)據(jù)日益增多。利用內(nèi)嵌于Microsoft Office中的VBA程序語言,可以大量簡化數(shù)據(jù)錄入人員重復(fù)性工作,提高數(shù)據(jù)錄入準(zhǔn)確性;Excel中的動態(tài)交互式圖表有助于提升數(shù)據(jù)分析人員判斷效率與準(zhǔn)確性。本文主要介紹在Excel環(huán)境下VBA設(shè)計實例以解決在生產(chǎn)數(shù)據(jù)錄入過程中遇到的實際問題,同時利用動態(tài)交互式報表進行生產(chǎn)動態(tài)分析。
關(guān)鍵詞:VBA技術(shù) Excel環(huán)境 動態(tài)交互式報表 動態(tài)分析
引言
在海洋石油生產(chǎn)平臺,中控人員需承擔(dān)各類數(shù)據(jù)的錄入,與此同時,還需承擔(dān)生產(chǎn)流程的日常監(jiān)控與調(diào)整。繁重的工作量與每日超過5000個以上數(shù)據(jù)的錄入,不僅增加了勞動強度,而且容易發(fā)生數(shù)據(jù)錄入失準(zhǔn)。
在提倡智能化革命的今天,數(shù)據(jù)錄入智能化已是大勢所趨?;赩BA技術(shù)的動態(tài)交互式Excel報表大幅降低了數(shù)據(jù)錄入人員的工作量,并提供了實時的生產(chǎn)動態(tài)分析功能。
一、VBA與動態(tài)交互式圖表概述
Visual Basic for Applications(VBA)是Visual Basic的一種宏程序設(shè)計語言,也是微軟公司開發(fā)出來的自動化、批處理任務(wù)程序,其可以有效地擴展Windows應(yīng)用程序功能。隨著VBA宏編程的普及,用戶錄入Excel宏命令時更加簡單,可以采用交互模式錄制模式,提高了宏程序的可用性。[1,2]
交互式報表是相對于傳統(tǒng)靜態(tài)數(shù)據(jù)報表的一種智能化業(yè)務(wù)分析的報表解決方案,使靜態(tài)的報表盡可能動態(tài)化,即報表數(shù)據(jù)動態(tài)化和報表形式動態(tài)化。交互式報表可以為報表審閱者提供交互功能,審閱者可以在運行報表之前輸入或選擇值,從而決定報表數(shù)據(jù)的形式。[3]
二、應(yīng)用實例
以渤海某油田中控數(shù)據(jù)錄入人員的生產(chǎn)日報為例,每日人工錄取數(shù)據(jù)超過2500個,不僅數(shù)據(jù)錄入量巨大,而且審核難度較高、周期性的數(shù)據(jù)搜集分析工作難度極大。
為減輕數(shù)據(jù)報表錄入的繁瑣性、提高數(shù)據(jù)錄入準(zhǔn)確率,油田編制了基于VBA的Excel的智能審核報表,實現(xiàn)了宏程序自動采集各崗的基礎(chǔ)數(shù)據(jù),并實現(xiàn)了以月單位的數(shù)據(jù)匯總,同時通過交互式圖表,實現(xiàn)了主要生產(chǎn)數(shù)據(jù)的可視化查詢,便于實時動態(tài)分析油田生產(chǎn)動態(tài)。
2.1基礎(chǔ)數(shù)據(jù)自動采集
對需要進行數(shù)據(jù)采集的單崗數(shù)據(jù)Excel報表與需匯總形成的生產(chǎn)日報,進行統(tǒng)一命名,如:井口參數(shù).xlsx與生產(chǎn)數(shù)據(jù)智能審核報表.xlsm。
操作方法:
第一步:先錄制自動數(shù)據(jù)采集的宏
(1)打開生產(chǎn)數(shù)據(jù)智能審核報表,即搜集基礎(chǔ)生產(chǎn)數(shù)據(jù)的報表;(2)選擇菜單“工具→宏→錄制新宏”,點擊“確定”;(3)手動將需井口參數(shù)報表中需要進行粘貼的數(shù)據(jù),逐一粘貼至生產(chǎn)數(shù)據(jù)智能審核報表中;(4)選擇菜單“工具→宏→停止錄制”。
第二步:用VBA編程實現(xiàn)觸發(fā)按鈕
(1)選擇菜單插入控件;(2)指定錄入完成的宏程序。
第三步:點擊制作完成的控件,完成數(shù)據(jù)采集。
2.2基礎(chǔ)數(shù)據(jù)月度累加匯總
第一步:用VBA編程,制作觸發(fā)按鈕;第二步:利用“do while ...else” 、“if...then...”、“l(fā)oop”語句完成,數(shù)據(jù)的判斷、粘貼與循環(huán)復(fù)制的功能。
(1)選中控件,右鍵指定宏,選擇編輯;(2)編寫VB程序語句;
Sub 錄取當(dāng)日水質(zhì)()
i = 3
Do While Range("B36") <> ""
If Cells(i, 20) <> "" Then
i = i + 1
Else:
Range("B76:F76").Select
Selection.Copy
Cells(i, 19).PasteSpecial xlPasteAll
Range("I76:M76").Select
Selection.Copy
Cells(i, 24).PasteSpecial xlPasteAll
Range("B75:F75").Select
Selection.Copy
Cells(i, 31).PasteSpecial xlPasteAll
Range("I75:M75").Select
Selection.Copy
Cells(i, 36).PasteSpecial xlPasteAll
Exit Do
End If
Loop
End Sub
(2)將上述宏制定至制作好的控件;
(3)點擊控件觸發(fā)程序,錄取每月中當(dāng)日的數(shù)據(jù)至匯總表格。
2.3制作交互式圖表
使用Excel函數(shù) index,制作交互式動態(tài)圖表。
以生產(chǎn)數(shù)據(jù)智能審核報表中,月度注水分析為例。
第一步 插入INDEX函數(shù),對當(dāng)月每日的數(shù)據(jù)在T36這個單元格進行絕對引用
第二步 插入控件窗體,并對數(shù)據(jù)源區(qū)域與單元格連接設(shè)置,將數(shù)據(jù)綁定至下拉控件中。
第三步 插入折線表,并將數(shù)據(jù)源設(shè)置為引用數(shù)據(jù),完成交互式圖表設(shè)置。
三、應(yīng)用效果及意義
基于VBA技術(shù)的動態(tài)交互式EXCEL報表已在渤海某油田中控報表數(shù)據(jù)錄入與審核進行了廣泛應(yīng)用。在實際應(yīng)用過程中,通過不同班組與中控錄入人員的反復(fù)使用,該表不斷優(yōu)化,實現(xiàn)了生產(chǎn)核心數(shù)據(jù)變化趨勢的自動預(yù)警提示和生產(chǎn)數(shù)據(jù)越的趨勢可視化分析。提高了工作效率與數(shù)據(jù)錄入的準(zhǔn)確性。
參考文獻:
[1]王春紅.基于VBA的財務(wù)報表系統(tǒng)分析[J].江蘇商論,2014,(33):221-222.
[2]唐燕,韓愛慶,翟興.基于VBA技術(shù)實現(xiàn)調(diào)查問卷數(shù)據(jù)自動讀取[J].計算機與現(xiàn)代化,2004,(2):226-228.
[3]潘曉蘋,莊禮杰.Microsoft Office 情景教學(xué)案例[M].北京:世界圖書出版公司,2004.