首頁 > 檢測加固 > 正文
VBA在橋梁檢測數(shù)據(jù)處理中的應(yīng)用--軟件篇
2011-07-07 來源:中國橋梁網(wǎng)整理
 引言

    在橋梁建設(shè)中,開展新建橋梁竣工驗(yàn)收和已建橋梁運(yùn)營期間的承載力評定工作,其最有效、最直接的方法就是橋梁荷載試驗(yàn)。荷載試驗(yàn)所獲得的原始數(shù)據(jù)、文字和圖像等重要資料,由于其數(shù)據(jù)總量龐大而不直觀,必須通過較為繁雜的數(shù)據(jù)處理、分析,得出可直接進(jìn)行橋梁結(jié)構(gòu)承載能力評定的指標(biāo),才能滿足承載力評定的需要。

    目前對荷載試驗(yàn)數(shù)據(jù)的處理,大部分機(jī)構(gòu)仍以手工計算為主,或雖有部分計算程序,但不夠系統(tǒng)和全面。一些應(yīng)用于工程后處理和報表生成的程序(如AutoCAD、Excel、Word等)所提供的普通功能已很難滿足交互式運(yùn)用和自動化生成報表的需求 對于測試出的應(yīng)變進(jìn)行線性回歸分析后,若仍舊以手工繪制,既費(fèi)時費(fèi)力,也難以保證高速成圖的精度需要。為此,作者開發(fā)了一套橋梁荷載試驗(yàn)數(shù)據(jù)處理系統(tǒng),現(xiàn)將有關(guān)情況介紹如下。

    1 開發(fā)橋梁自動化報表的過程及效果在對橋梁外業(yè)檢測獲得的一系列數(shù)據(jù)進(jìn)行內(nèi)業(yè)整理過程中,不僅需要翻閱一些規(guī)范和已有的參考資料,而且有時還要利用一些VB開發(fā)的小程序(例如不同梁高應(yīng)變值的一元線性回歸分析和圖表生成、混凝土回彈法測強(qiáng)的計算等)。這些小程序盡管也能節(jié)省計算時間,但由于沒有形成一個相對完整的系統(tǒng),隨機(jī)性大。屬于間歇式的非連續(xù)運(yùn)算,不僅使用非常不便,而且影響計算機(jī)高速運(yùn)算特性的發(fā)揮、增大了產(chǎn)生人為操作誤差的幾率。為此,我們通過各類功能的篩選和系統(tǒng)化處理,利用VBA的編程將各種計算融入Excel中完成,然后用OLE自動化的方法將它們的結(jié)果調(diào)入Word中自動生成報表。使橋梁檢測的后處理工作實(shí)現(xiàn)了軟件的系統(tǒng)化,不僅可在較短時間內(nèi)完成,而且提高了精度和效率。

    2 Excel中使用VBA編程處理數(shù)據(jù)簡介Excel電子表格是目前應(yīng)用比較廣泛的軟件之一,具有較好的數(shù)據(jù)處理、圖表分析及使用各種函數(shù)、工具等功能。

    運(yùn)用Excel能輕松的處理我們平時需要大量計算的問題。而Excel VBA編程,則是一種基于Excel的VB在Win.(1ows環(huán)境下的開發(fā)應(yīng)用型語言。它是VB的一個子集,可以廣泛應(yīng)用于包括Excel在內(nèi)的各種軟件(例如AutoCAD、wor(1、Access等)。其中一個重要的概念就是“宏”。宏就是一種將你在程序中的操作進(jìn)行紀(jì)錄并以VBA代碼的形式顯 示的一系列動作。

    下面介紹幾種常用的引用Excel單元格的方法:

    (1) 用編號引用單元格。下例中.Range(“B1”)返回工作表“sheet3”上的單元格“B1”,然后將其屬性值設(shè)為一個可以計算的表達(dá)式。

    例Sheet3.Range(一BI”)= ”:OFFSET(規(guī)范數(shù)據(jù)庫!J” & i& ”:P”& i& 。,0,2,I,I)”

    (2) VBA中的控件與事件。在VBA中與VB中同樣有控件和事件的概念。控件,是一些對象的集合(如命令按 鈕);事件,可以相應(yīng)一系列的動作(如單擊、雙擊等)。如下

    為一·個“選定”外觀的按鈕響應(yīng):,*BtnSure是一個命令按鈕*,Private Sub BtnSme Click()

    Dim i As Integer.temp As String,X1 As String,x2 As Integer,j As Integer,k As Integer,l As Integer/*lisXuanDing為一個列表框,記錄選擇狀態(tài)*/For 1 = 0 To Sheet4.1isXuanDing.ListCount一1temp Sheet4.1isXuanDing.List(Sheet4.1isXD.ListCoant一1 一1)

    xl= Trim(Left(temp,Len(temp)一3))

    x2 = common.zhuanhuan(Right(temp,3))

    For i= 24 To 70 If Shee~.Range( 丁’&i)=x2 And Sheet2.Range(⋯K’& i)= xlThen With Sheet4.Range(”11:11”).Insea.Range(”11:11”).RowHeight= 50.Range(⋯B’& 11+ k& ”:”& ⋯C’& 11+ k).Merge.Range(⋯B’& 11+ k)= xl End With.Range(”D”&11+ k& ”:”& ⋯E’& 11+ k).Merge /*規(guī)范數(shù)據(jù)庫內(nèi)含檢測用數(shù)據(jù)*/.Range(”D”&11+ k)= ”=0FFsET(規(guī)范數(shù)據(jù)庫!J..&i&”: ’&i& ”,0,2,1,1)”

    3 橋梁檢測自動化報表系統(tǒng)的組成及各部功能該系統(tǒng)主要由Excel數(shù)據(jù)處理模塊、AutoCAD圖形編輯模塊、OLE自動化Word報表生成模塊等三部分組成。其中,Excd數(shù)據(jù)處理模塊是核心。它包含了數(shù)據(jù)庫、計算程序、與AutoCAD和Word之間用VBA調(diào)用的協(xié)調(diào)功能。Excel中數(shù)據(jù)單元的定位、主要檢測模塊的組成如下:

    (1) 橋梁概況:用于輸入橋梁的基本資料(如檢測單位、報告標(biāo)題、結(jié)構(gòu)形式、跨徑等)。其中一些標(biāo)準(zhǔn)跨徑橋的數(shù)據(jù),已經(jīng)輸入后面的規(guī)范數(shù)據(jù)庫表,可以直接用下拉列表框選擇。

    (2) 外觀檢查:此模塊的功能是將外業(yè)所得的外觀狀況與實(shí)際規(guī)范中描述方式進(jìn)行對比后,以表格的模式整體輸出。

    (3) 荷載準(zhǔn)備:該模塊是將橋梁檢測中所用到的規(guī)范進(jìn)行選取。結(jié)果生成表格的形式報表。

    (4) 撓度檢查:填寫荷載試驗(yàn)的撓度變化情況,讓程序自動進(jìn)行數(shù)據(jù)統(tǒng)計生成報表。

    (5) 回彈計算表:橋梁檢測中一項(xiàng)重要工作就是用回

    彈法對混凝土強(qiáng)度進(jìn)行檢測 針對回彈法檢測后數(shù)據(jù)處理(包括表格中數(shù)值內(nèi)插求解)十分繁瑣的實(shí)際情況,筆者使用VBA編程進(jìn)行了處理,可快捷的獲得測區(qū)混凝土各項(xiàng)數(shù)據(jù)。

    (6) 應(yīng)變測試:該模塊的功能是沿橋梁的某個截面高度進(jìn)行測試,然后對得到的應(yīng)變數(shù)據(jù)做一元線性回歸分析并自動生成圖表。進(jìn)而由回歸直線反推出梁頂、梁底的應(yīng)變值并標(biāo)注干圖表中。

    (7) 測試儀器及結(jié)果分析:填寫檢測用到的儀器,并對檢測的結(jié)果評定。

    4 報表的生成

    本系統(tǒng)使用了基于Word的模板,用VBA編程和OLE自動化的技術(shù)直接將Excel數(shù)據(jù)生成Word文檔報表。該word模板文件用標(biāo)簽對Excel傳遞來的數(shù)據(jù)進(jìn)行定位,然后通過VBA中編程調(diào)用。具體的實(shí)現(xiàn)過程如下:

    (1) 首先啟動Microsoft w0rd 2000,在要插人數(shù)據(jù)的位置鍵人書簽名(例如[項(xiàng)目名]),然后將整個“[項(xiàng)目名]""選中,通過菜單的插入/書簽,彈出“書簽”對話框,輸入一個書簽名。

    (2) 在Excel中具體的VBA代碼如下 】:/*appWord、appWordDocument Excel中操縱的Word對象*/Dim appWord As WoM .ApplicationDim appWordDocument As Word.Document/*appWordRange、WordSelefion Word對象的一個選區(qū)*/Dim appWordRange As Word .RangeDim WordSelection As Wl0rd.Selection/*Sheetl3.CDG2為通用對話框,用于選擇模板文件的位置 *,Sheetl3.CDG2.Filter= ”報告文件(*.dot)1*.dot”Sheetl3.CDG2.ShowOpen tempPath = Sheetl 3.CDG2.FileNameSet appW ord = New W【)rd.Application /*調(diào)用appWord的wom對象打開模板*/With appWord . Documents.Open FileName:=tempPathEnd With appWord.Visible= True/*顯示W(wǎng)ord對象*/

    /*定位到Word模板中書簽的位置*/appWord.Selection.GoTo wdGoToBookmark,,,”項(xiàng)目名” /*傳遞Excel數(shù)據(jù)到該書簽位置*/appW ord .Selection.TypeText

    5 系統(tǒng)的特點(diǎn)

    本橋梁荷載實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)有三個主要特點(diǎn):一是,本系統(tǒng)W(Jrd模板的編制可得到一個統(tǒng)一的報表格式,省去了以往每次都對報表格式進(jìn)行調(diào)整的麻煩;二是,將原有分散獨(dú)立的功能模塊集成到一個統(tǒng)一環(huán)境下,使操作更為簡便;三是,引入VBA編程和OLE 自動化的概念,使得各種程序計算和報表能自動進(jìn)行。

    6 結(jié)語

    本系統(tǒng)經(jīng)過篩選、集成和系統(tǒng)化形成了環(huán)境統(tǒng)一的完整系統(tǒng),使得橋梁檢測數(shù)據(jù)處理變得簡便,加快了內(nèi)業(yè)報表處理的速度。大幅度縮短了從外業(yè)檢測到報表輸出的時間和周期 通過實(shí)際應(yīng)用證明,其結(jié)果可靠,操作簡便,快速高效,具有較強(qiáng)的實(shí)用意義和前景。

    參考文獻(xiàn)

    [1] 宋一凡.公路橋梁荷載試驗(yàn)與結(jié)構(gòu)評定[M].北京:人民交通出版社.2002.

    [2] 王成春,蕭雅云、實(shí)戰(zhàn)Exce1 2000 VBA程序設(shè)計實(shí)務(wù)[M].北京:中國鐵道出版社,2003.
Copyright © 2007-2022 cnbridge.cn All Rights Reserved
服務(wù)熱線:010-64708566 法律顧問:北京君致律師所 陳棟強(qiáng)
ICP經(jīng)營許可證100299號 京ICP備10020099號  京公網(wǎng)安備 11010802020311號