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