EXCEL在工程算量中的应用来源:中国论文下载中心[06-07-1010:48:00]作者:陶阳编辑:凌月仙仙摘要:本文分析了目前所用工程算量方法中存在的问题,介绍了一种既高效准确又便于对账的EXCEL算量软件,包括其技术要点及部分源程序等。关键词:工程算量附注分离自动计算EXCELVBA工程量计算是工程造价的基础,也是造价工作者最为费神的。随着工程量清单计价的全面推行,工程量计算规则将更为细致复杂。所以提高工程算量的工作效率,成了每个造价工作者的美好愿望。一、常见工程算量方式的介绍到目前为至,常见的工程算量方式主要有手工算量法、专业软件算量法、传统的EXCEL算量法等。手工算量法相对于另两种方式而言,其计算过程清楚便于对账,但最大的弊端是费时又易出错。专业软件算量法由于少了列式计算的步骤,使不懂造价的人也可方便使用,对于做标底特别方便。但其对细部处理不灵活,价格又高,而且大多只局限于对土建进行算量,对账也不方便。传统的EXCEL算量法,相对于手工算量法准确程度和工作效率大大提高了,但工作量仍较大,对账功能也不及手工算量方便。表1工程量计算稿二、EXCEL算量法的介绍由于工程算量必须要进行相关各方的多次核对,所以对账功能与高效准确同样重要。本文介绍的算量方式在传统的EXCEL算量法的基础上作了较大的改进,通过增加附注使其具备手工算量的对账优点,同时也比传统的EXCEL算量法更为快捷。该软件的整体工作思路与手工算量法基本一致。在“工程量计算稿”上的计算式输入(或修改)完成后,计算机通过预设的VBA程序计算出工程量并保存在相应的“工程量”单元格中(如表1)。当全部工程量计算完成后,单击“工程量汇总”表左上方的“工程量汇总”命令按钮,计算机按照预设的VBA程序对“工程量计算稿”表中的工程量按清单项目号进行汇总并排序(如表2)。通过以上两大功能确保了EXCEL算量软件的高效准确性。表2工程量汇总表三、软件设计中的技术要点剖析要实现以上功能必须解决好以下几个技术要点:附注的分离及表达式自动计算,工程量按“项目编号”汇总及排序。1、附注的分离及表达式自动计算在计算式中添加附注是本软件的一大特色,可以方便我们对账。但我们知道EXCEL只能对数字进行运算,于是必须对计算式中的附注进行分离。如表1所示,我们将附注均写在“[]”内,于是问题便转化为对“[]”中的内容进行分离。当计算式输入(或修改)完成后,VBA程序即对表达式中的字符进行逐一识别,将非“[]”中的内容通过函数(1)逐一添加到中间变量Q中。Q=Q&Mid(X,I,1)(1)式中:X为计算式,函数Mid(X,I,1)为提取X中的第I个字符。同时我们知道EXCLE只对“=”开始的数学表达式进行运算,而无法对分离出来的表达式无法进行,于是我们引入了函数(2)。FL=ApplicationEvaluate(“(”&Q&”)”)(2)式中:FL为表达式的计算结果,函数Evaluate()为取值函数。自动计算是是本软件的又一特色,一般的EXCEL算量法都要通过对“计算式”后的单元格逐一引用函数,这样做既增加操作时间又容易忘记。为此预设的VBA程序,在“计算式”中的内容一旦发生变化即自动执行附注分离与表达式取值的过程。其自动计算的源程序如下:‘************************************************************************PrivateSubWorksheet_Change(ByValTargetAsRange)X=Target.Rowy=Target.ColumnApplication.EnableEvents=FalseIfy=3ThenRange(d&X)=FL(Range(c&X))EndIfApplication.EnableEvents=TrueEndSub‘***********************************************************************2、工程量按“项目编号”汇总及排序工程量按“项目编号”汇总及排序是本软件的另一特色。“工程量计算稿”是按分部分项工程计算的,工程量计算完成后我们要把相同类进行汇总。根据《建设工程工程量清单计价规范》,相同的项目具有相同的项目编号,这就为工程量汇总带来了便利。在汇总时对“工程量计算稿”中的“项目编号”在“工程量汇总表”中进行搜索看是否出现过。若未出现过则将相关参数依次输入第一个空白行中,并将对应的分部分项名称作为附注(套上“[]”后)添加在“汇总式”的最后一个数字后。若已出现过则仅将“+”及分部分项的工程量、对应的分部分项名称(注套上“[]”后)添加在相应的单元格后,如表2所示。汇总后按项目编号对所有参数进行重新排序。而实际上以上步骤是一气呵成的。其源程序如下:‘**********************************************************************************************WithWorksheets(工程量计算稿)nRow=.Range(a65536).End(xlUp).RowFori=3TonRowIfLen(.Range(c&i))=0ThencCeng=[&.Range(a&i)&]ElsecXiang=.Range(a&i)Setc=Worksheets(工程量汇总表).Range(a:a).Find(cXiang,LookIn:=xlValues)IfcIsNothingThenSetc=Worksheets(工程量汇总表).Range(a65536).End(xlUp).Offset(1,0)c.Value=cXiangc.Offset(0,1)=.Range(b&i)c.Offset(0,2)=.Range(d&i)&cCengc.Offset(0,4)=.Range(e&i)Elsec.Offset(0,2)=c.Offset(0,2)&+&.Range(d&i)&cCengEndIfc.Offset(0,3)=c.Offset(0,3)+.Range(d&i)EndIfNextEndWith‘注:以上程序的作用为将“工程量计算稿”中相同项目编号的工程量在“工程量汇总表”进行中汇总Worksheets(工程量汇总).Range(b3:e65536).Sort_Key1:=Worksheets(工程量汇总).Range(b3)程量汇总).Range(A3)‘注:以上程序的作用为将汇总后的结果按清单编号进行排序‘**********************************************************************************************四、尾声用VBA开发的EXCEL算量软件,经实践证明能较好的解决目前工程算量中存在的问题,是造价者不可多得的算量工具。该软件不仅适用于清单计价模式下的工程量计算,也适用于定额计价模式下的工程量计算。同时还可通过与其他套价软件(或定额库)衔接在工程量汇总后直接进行计价。希望本文起起到抛砖引玉的作用,不足之处请不吝指正。参考文献:[1]中华人民共和国建筑部.建设工程工程量清单计价规范.北京.中国计划出版社.2003[2]建设部标准定额研究所.《建设工程工程量清单计价规范》宣贯教材.北京.中国计划出版社.2003[3]BillJelen,Tracysyrstad著.王军,等译.巧学巧用EXCEL2003VBA与宏(中文版).北京:电子工业出版社,2005[4]求是科技.编著.VisualBasic房产建筑应用系统开发实例导航.北京.人民邮电出版社.2004