简介: 宏命令是一种很好的事件方式,我们可以利用该方式对桥梁检测中经常遇到的回弹计算问题进行适当的语言设计,从而减少很多重复的计算,这样便可以提高我们的工作效率和数据的准确性。
关键字:EXCEL 宏 桥梁检测 回弹强度

引言

  宏命令是基于VB程序而面向用户的一种比较实用的编辑命令,利用它我们可以对一些繁琐重复的事件进行连续操作,从而减少了不必要的工作量,提高了工作效率,同时,也可以通过VB语言对宏命令下的事件进行修改,使其能够更好的为我们工作所用,正是由于宏有此种独特的作用,所以我对宏进行了研究,并将其运用到我们桥梁检测的回弹计算中。

  回弹强度是桥梁检测中及其重要的一项检测项目,通过对回弹强度的检测结果,我们可以比较准确的得出病害构件的强度值,从而为整个桥梁的评定以及后期的维修加固提供可靠的数据支持。

  1、设计背景和方法

  现在国产的回弹仪有不少不能够直接求值(例如:山东乐陵市回弹仪器厂生产的ZC3-A型回弹仪),需要对照回弹强度换算表进行查询,其过程比较繁琐,甚至有些时候眼误,造成数据结果的真实性和可靠性有所下降,鉴于此种情况,决定对回弹强度计算进行计算机处理。具体的设计方法是:先利用概率统计理论对每一个回弹强度对照表中的各个数据进行概率统计,并得出回归分析参数,计算不同炭化深度条件下的回弹计算公式,然后利用EXCEL中的宏命令将各回弹计算公式进行函数化,从而达到提高数据计算的准确性和减少繁琐性。

  2、具体的设计过程

  2.1 回弹强度计算公式的求导

  先利用EXCEL将回弹对照表中的各个数据制成工作表,然后利用EXCEL把各个炭化深度条件下的回弹值自动生成折线图表,并最终利用折线图表求取回归线的斜率和各轴的截距,这样最终得出在不同回弹强度条件下的回弹计算公式,由于篇幅有限,具体的计算过程请自行计算,现仅将结果公布如下,供大家核实:

  当炭化深度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中工具下的宏命令,然后利用函数将各个回弹计算公式插入到相应的单元格中,但为了一些操作过程中的程序的反复运行,需要对已经录制好的宏命令进行修改,具体的做法是,先启用宏,然后选择编辑命令就可以进入VB设计面板对各个事件进行函数修改,最终可以生成以下的事件程序:

  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)运行程序并进行校核

  经过具体的核对以后发现该程序胜利通过,其误差范围为±0.1。

  结 语

  本文中所设计的回弹计算方法仅是本人在现实工作中利用自身所学知识所设计的一个简单的程序,该程序不一定要依托于EXCEL的宏命令,也可以用VB语言进行设计并生成可执行的应用程序,本文中之所以将其运用到宏命令中完全是出于工作中的方便,如果哪位同志有兴趣的话,可以用VB语言设计,其效果也相当不错,不妨试试!

  另外,由于篇幅的原因,本文仅将炭化深度为1.0时的设计程序用于本文,其它炭化条件下的事件过程均可参照该事件函数进行编辑,在此不再赘叙!

  参考文献:

  【1】徐奔,桥梁检测与维修加固百问,北京,人民交通出版社,2002

  【2】许永明,公路养护与管理,北京,人民交通出版社,1998

  【3】姚玲森,桥梁工程,北京,人民交通出版社,2003

  【4】中华人民共和国行业标准,回弹法检测混凝土抗压强度技术规程JGJ/T23-2001,北京,人民交通出版社,2001