本站小編為你精心準(zhǔn)備了錄井砂地比統(tǒng)計VBA批量處理運(yùn)用參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1引言
在儲層參數(shù)(如錄井砂地比)統(tǒng)計中地質(zhì)資料量大、分散,常規(guī)統(tǒng)計操作重復(fù)枯燥、效率低下且容易出錯[1~3]。比如,一口錄井資料需要按所劃分的地層(20層)統(tǒng)計出每一地層里某巖性(砂巖)總厚度所占當(dāng)層比率,而當(dāng)一個工區(qū)內(nèi)井?dāng)?shù)眾多(50口井)時,依靠人工摘錄匯總統(tǒng)計就顯得費時費力。引入計算機(jī)技術(shù)后,類似Ex-cel的辦公軟件給地質(zhì)數(shù)據(jù)的統(tǒng)計處理帶來了極大的便利,但面對日益膨脹的多類型海量數(shù)據(jù),這些常規(guī)的辦公軟件明顯難以滿足需求[1]。一是如果僅靠人工操作逐層挑選、累加求和然后數(shù)據(jù)匯總的話,工作重復(fù)量大,而且隨著地層數(shù)和井?dāng)?shù)增加而更顯著。二是這些數(shù)據(jù)統(tǒng)計結(jié)果的編排格式與文件保存格式都必需滿足后續(xù)軟件(如Surfer、Petrel等)的輸入要求,否則,格式編排轉(zhuǎn)換工作量也會隨著文件數(shù)目增加而變大。商業(yè)軟件大多數(shù)據(jù)庫底層不透明,給后期數(shù)據(jù)快速修改、重新加載和軟件二次開發(fā)帶來了困難[2]。vba批量處理程序能夠自動操作Excel,輕松完成大量重復(fù)工作,可以批量保存成txt文本格式便于直接導(dǎo)入其它軟件。利用VBA語言編寫的數(shù)據(jù)處理程序,可作多井?dāng)?shù)據(jù)批量統(tǒng)計整理,使地質(zhì)人員更專注于地質(zhì)研究工作,同時宏程序直接面向Excel,使得數(shù)據(jù)獲得和處理更加方便快捷[2]。本文以分層統(tǒng)計錄井砂地比為例,完整闡述VBA批量處理程序。
2統(tǒng)計方法
砂地比是砂巖總厚度與地層厚度的比值,因此統(tǒng)計工作需要從該地層的頂?shù)捉鐑?nèi)挑出所有的砂巖,計算厚度之和然后再除以此地層厚度。對錄井資料,首先需要按地質(zhì)分層取出所要計算的地層深度段內(nèi)巖性數(shù)據(jù),然后挑出此深度段內(nèi)分布的砂巖層并累加其厚度求總和,得出此地層內(nèi)砂巖總厚度,除以地層厚度就得到此地層的砂地比。按地質(zhì)分層頂?shù)捉缇€可以求出每口井中各地質(zhì)分層對應(yīng)深度段內(nèi)的砂地比值,然后取出各井中分層名相同的砂地比數(shù)據(jù)就可以用于分析工區(qū)內(nèi)每一地質(zhì)分層的砂地比平面分布情況[2,4]。
3實現(xiàn)方法與關(guān)鍵步驟
要實現(xiàn)VBA程序自動操作Excel需要做到以下幾方面。圖1各井分層數(shù)據(jù)Fig.1Layereddataofeachwell圖2各井巖性錄井?dāng)?shù)據(jù)Fig.2Mudloggingdataofeachwell1)整理三類原始數(shù)據(jù)表。三類數(shù)據(jù)分別為井分層、錄井和井坐標(biāo)數(shù)據(jù),共放在三個工作簿中,命名為“各井分層數(shù)據(jù).xls”“各井巖性錄井?dāng)?shù)據(jù).xls”和“各井坐標(biāo)數(shù)據(jù).xls”。其中,井分層數(shù)據(jù)以各井名為電子表格名存放地質(zhì)分層信息,包括分層名、頂深和底深(圖1)。錄井?dāng)?shù)據(jù)以各井名為電子表格名存放錄井巖性信息,包括頂深、底深和巖性(圖2)。井坐標(biāo)數(shù)據(jù)則放在一張電子表中并命名為“各井坐標(biāo)”,數(shù)據(jù)包括井名、x坐標(biāo)和y坐標(biāo)。各張電子表格的第一行為表頭,數(shù)據(jù)都從第二行開始(圖3)。2)統(tǒng)計各分層砂地比。首先需要按照井分層信息中分層界線將錄井中跨層巖體深度段劈分,然后挑選并計算分層對應(yīng)深度段內(nèi)砂巖厚度之和,最后除以層厚度得出砂地比。3)提取各井同名分層信息。提取各井中同名分層信息并保存到以此分層名而建立的電子表格中(圖4)。最后,將各層數(shù)據(jù)表以對應(yīng)表格名批量另存為txt文檔。
4操作方法及源程序
4.1操作方法將三類原始數(shù)據(jù)表放在同一個文件夾下,打開“各井分層數(shù)據(jù).xls”,并打開宏里面的“VisualBasic編輯器”,雙擊工程窗口中的“ThisWork-book”后在右邊代碼窗口寫入源程序[5~7]。當(dāng)光標(biāo)處在第一個程序內(nèi)時,運(yùn)行宏即可自動完成批量統(tǒng)計。
4.2源程序源程序由三部分組成,第一個程序為主程序,分別調(diào)用后兩個子程序,如下:
4.3源程序優(yōu)缺點分析1)優(yōu)點。①源程序可以直接用于實際工作,無需操作人員必須會VBA編程基礎(chǔ),其參與運(yùn)算的井?dāng)?shù)與地層分層數(shù)不受限制,可以自動識別。②能夠自動完成劈分跨界巖性深度,挑出特定巖性,累計求取厚度,匹配各井坐標(biāo),并且利用數(shù)組提高運(yùn)行速度。③自動篩選出同層異井信息并且批量另存為txt文本,方便導(dǎo)入其它軟件。2)缺點。①三類原始數(shù)據(jù)格式及其命名必須與所要求的一致,否則源程序無法找到對應(yīng)數(shù)據(jù)。②程序運(yùn)行中有幾次保存工作簿的操作,影響了程序運(yùn)行速度,并且隨著井?dāng)?shù)增多速度會隨之變慢,甚至井?dāng)?shù)太多時只有采取分批處理辦法。
4.4源程序應(yīng)用效果分析無論是同傳統(tǒng)的手工統(tǒng)計還是常規(guī)的辦公軟件的人工操作相比,本程序方法實現(xiàn)了自動化批量處理,對多步統(tǒng)計工作實現(xiàn)了一次性程序自動高效完成。5結(jié)語編寫VBA批量處理程序用于井?dāng)?shù)眾多的工區(qū)時,效果十分明顯,能夠大幅提高工作效率,減少人工誤差。源程序利用數(shù)組存儲數(shù)據(jù)實現(xiàn)循環(huán),大大提高了運(yùn)行速度。本文以砂地比統(tǒng)計為例進(jìn)行了方法闡述,源程序中還給出了泥地比、砂巖厚度、泥巖厚度等重要儲層參數(shù)統(tǒng)計結(jié)果。對于不會編寫VBA程序的讀者,可以按照文中闡述的方法直接應(yīng)用源程序?qū)崿F(xiàn)統(tǒng)計操作;對于會編程序的讀者還可以對源程序進(jìn)行修改推廣應(yīng)用到其他類似統(tǒng)計工作中,甚至開發(fā)插件。