簡介: 宏命令是一種很好的事件方式,我們可以利用該方式對橋梁檢測中經(jīng)常遇到的回彈計算問題進行適當?shù)恼Z言設計,從而減少很多重復的計算,這樣便可以提高我們的工作效率和數(shù)據(jù)的準確性。
關鍵字:EXCEL 宏 橋梁檢測 回彈強度
引言
宏命令是基于VB程序而面向用戶的一種比較實用的編輯命令,利用它我們可以對一些繁瑣重復的事件進行連續(xù)操作,從而減少了不必要的工作量,提高了工作效率,同時,也可以通過VB語言對宏命令下的事件進行修改,使其能夠更好的為我們工作所用,正是由于宏有此種獨特的作用,所以我對宏進行了研究,并將其運用到我們橋梁檢測的回彈計算中。
回彈強度是橋梁檢測中及其重要的一項檢測項目,通過對回彈強度的檢測結果,我們可以比較準確的得出病害構件的強度值,從而為整個橋梁的評定以及后期的維修加固提供可靠的數(shù)據(jù)支持。
1、設計背景和方法
現(xiàn)在國產(chǎn)的回彈儀有不少不能夠直接求值(例如:山東樂陵市回彈儀器廠生產(chǎn)的ZC3-A型回彈儀),需要對照回彈強度換算表進行查詢,其過程比較繁瑣,甚至有些時候眼誤,造成數(shù)據(jù)結果的真實性和可靠性有所下降,鑒于此種情況,決定對回彈強度計算進行計算機處理。具體的設計方法是:先利用概率統(tǒng)計理論對每一個回彈強度對照表中的各個數(shù)據(jù)進行概率統(tǒng)計,并得出回歸分析參數(shù),計算不同炭化深度條件下的回彈計算公式,然后利用EXCEL中的宏命令將各回彈計算公式進行函數(shù)化,從而達到提高數(shù)據(jù)計算的準確性和減少繁瑣性。
2、具體的設計過程
2.1 回彈強度計算公式的求導
先利用EXCEL將回彈對照表中的各個數(shù)據(jù)制成工作表,然后利用EXCEL把各個炭化深度條件下的回彈值自動生成折線圖表,并最終利用折線圖表求取回歸線的斜率和各軸的截距,這樣最終得出在不同回彈強度條件下的回彈計算公式,由于篇幅有限,具體的計算過程請自行計算,現(xiàn)僅將結果公布如下,供大家核實:
當炭化深度L=1.0時,回彈強度Rn=0.0229689N2.0108
當炭化深度L=1.5時,回彈強度Rn=0.021726N2.0108
當炭化深度L=2.0時,回彈強度Rn=0.0204743N2.0108
當炭化深度L=2.5時,回彈強度Rn=0.0197257N2.0108
當炭化深度L=3.0時,回彈強度Rn=0.0189762N2.0108
當炭化深度L=3.5時,回彈強度Rn=0.0184769N2.0108
當炭化深度L=4.0時,回彈強度Rn=0.0179754N2.0108
當炭化深度L=4.5時,回彈強度Rn=0.0169722N2.0108
當炭化深度l=5.0時,回彈強度Rn=0.0162276N2.0108
注:公式中N代表回彈平均值。
2.2宏命令的編輯
(1)制作回彈法混凝土強度試驗記錄表,如圖1所示
圖1 回彈法混凝土強度試驗記錄表
。2)錄制宏命令并進行必要的修改
首先選擇EXCEL中工具下的宏命令,然后利用函數(shù)將各個回彈計算公式插入到相應的單元格中,但為了一些操作過程中的程序的反復運行,需要對已經(jīng)錄制好的宏命令進行修改,具體的做法是,先啟用宏,然后選擇編輯命令就可以進入VB設計面板對各個事件進行函數(shù)修改,最終可以生成以下的事件程序:
Sub 炭化1()
Range("S11:T11").Select
ActiveCell.FormulaR1C1 = "=1.0"
Range("Q11").Select
ActiveCell.FormulaR1C1 = ""
Range("P11").Select
ActiveCell.FormulaR1C1 = ""
Range("P11:Q11").Select
Range("Q11").Activate
Selection.Copy
Range("H11:I11").Select
ActiveSheet.Paste
Range("J11:K11").Select
ActiveSheet.Paste
Range("L11:M11").Select
ActiveSheet.Paste
Range("N11:O11").Select
ActiveSheet.Paste
Range("H11:Q11").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("H11:Q15"), Type:=xlFillDefault
Range("H11:Q15").Select
Range("G11").Select
ActiveCell.FormulaR1C1 = ""
Range("F11").Select
ActiveCell.FormulaR1C1 = ""
Range("E11").Select
ActiveCell.FormulaR1C1 = ""
Range("B11").Select
ActiveCell.FormulaR1C1 = ""
Range("C11").Select
ActiveCell.FormulaR1C1 = ""
Range("D11").Select
ActiveCell.FormulaR1C1 = ""
Range("B12").Select
ActiveCell.FormulaR1C1 = ""
Range("C12").Select
ActiveCell.FormulaR1C1 = ""
Range("D12").Select
ActiveCell.FormulaR1C1 = ""
Range("E12").Select
ActiveCell.FormulaR1C1 = ""
Range("F12").Select
ActiveCell.FormulaR1C1 = ""
Range("G12").Select
ActiveCell.FormulaR1C1 = ""
Range("G13").Select
ActiveCell.FormulaR1C1 = ""
Range("F13").Select
ActiveCell.FormulaR1C1 = ""
Range("E13").Select
ActiveCell.FormulaR1C1 = ""
Range("D13").Select
ActiveCell.FormulaR1C1 = ""
Range("C13").Select
ActiveCell.FormulaR1C1 = ""
Range("B13").Select
ActiveCell.FormulaR1C1 = ""
Range("B14").Select
ActiveCell.FormulaR1C1 = ""
Range("B15").Select
Range("C14").Select
ActiveCell.FormulaR1C1 = ""
Range("D14").Select
ActiveCell.FormulaR1C1 = ""
Range("E14").Select
ActiveCell.FormulaR1C1 = ""
Range("F14").Select
ActiveCell.FormulaR1C1 = ""
Range("G14").Select
ActiveCell.FormulaR1C1 = ""
Range("G15").Select
ActiveCell.FormulaR1C1 = ""
Range("F15").Select
ActiveCell.FormulaR1C1 = ""
Range("E15").Select
ActiveCell.FormulaR1C1 = ""
Range("D15").Select
ActiveCell.FormulaR1C1 = ""
Range("C15").Select
ActiveCell.FormulaR1C1 = ""
Range("B15").Select
ActiveCell.FormulaR1C1 = ""
Range("R11").Select
ActiveCell.FormulaR1C1="=RC[-10]:RC[-1](RC[-10]+RC[-9]+RC[-8]+RC[-7]+RC[-6]+RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1])/10"
Range("R11").Select
ActiveCell.FormulaR1C1="=(RC[-10]+RC[-9]+RC[-8]+RC[-7]+RC[-6]+RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1])/10"
Range("R12").Select
ActiveCell.FormulaR1C1="=(RC[-10]+RC[-9]+RC[-8]+RC[-7]+RC[-6]+RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1])/10"
Range("R15").Select
ActiveWindow.SmallScroll Down:=3
Range("K24").Select
ActiveCell.FormulaR1C1 = "=R[-13]C[7]"
Range("L24").Select
ActiveCell.FormulaR1C1 = "=R[-12]C[6]"
Range("M24").Select
ActiveCell.FormulaR1C1 = "=R[-11]C[5]"
Range("N24").Select
ActiveCell.FormulaR1C1 = "=R[-10]C[4]"
Range("O24").Select
ActiveCell.FormulaR1C1 = "=R[-9]C[3]"
Range("O25").Select
ActiveWindow.SmallScroll Down:=-3
Range("S12:T12").Select
ActiveCell.FormulaR1C1 = "=R[-1]C"
Range("S13:T13").Select
ActiveCell.FormulaR1C1 = "=R[-2]C"
Range("S14:T14").Select
ActiveCell.FormulaR1C1 = "=R[-3]C"
Range("S15:T15").Select
ActiveCell.FormulaR1C1 = "=R[-4]C"
Range("S16:T16").Select
ActiveWindow.SmallScroll Down:=6
Range("K29").Select
ActiveCell.FormulaR1C1 = "=R[-14]C[8]"
Range("L29").Select
ActiveCell.FormulaR1C1 = "=R[-14]C[7]"
Range("M29").Select
ActiveCell.FormulaR1C1 = "=R[-14]C[6]"
Range("N29").Select
ActiveCell.FormulaR1C1 = "=R[-14]C[5]"
Range("O29").Select
ActiveCell.FormulaR1C1 = "=R[-14]C[4]"
Range("K30").Select
ActiveCell.FormulaR1C1 = "=0.0229689*POWER(R[-6]C,2.0108)"
Range("K30").Select
Selection.AutoFill Destination:=Range("K30:O30"), Type:=xlFillDefault
Range("K30:O30").Select
Range("Q31:T31").Select
ActiveCell.FormulaR1C1 = "=MIN(R[-1]C[-6]:R[-1]C[-2])"
Range("H32:T32").Select
ActiveCell.FormulaR1C1 = "=R[-1]C[9]"
Range("H33").Select
ActiveWindow.SmallScroll Down:=-6
Range("B11:Q15").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("M16").Select
Range("P17").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub
。3)運行程序并進行校核
經(jīng)過具體的核對以后發(fā)現(xiàn)該程序勝利通過,其誤差范圍為±0.1。
結 語
本文中所設計的回彈計算方法僅是本人在現(xiàn)實工作中利用自身所學知識所設計的一個簡單的程序,該程序不一定要依托于EXCEL的宏命令,也可以用VB語言進行設計并生成可執(zhí)行的應用程序,本文中之所以將其運用到宏命令中完全是出于工作中的方便,如果哪位同志有興趣的話,可以用VB語言設計,其效果也相當不錯,不妨試試!
另外,由于篇幅的原因,本文僅將炭化深度為1.0時的設計程序用于本文,其它炭化條件下的事件過程均可參照該事件函數(shù)進行編輯,在此不再贅敘!
參考文獻:
【1】徐奔,橋梁檢測與維修加固百問,北京,人民交通出版社,2002
【2】許永明,公路養(yǎng)護與管理,北京,人民交通出版社,1998
【3】姚玲森,橋梁工程,北京,人民交通出版社,2003
【4】中華人民共和國行業(yè)標準,回彈法檢測混凝土抗壓強度技術規(guī)程JGJ/T23-2001,北京,人民交通出版社,2001