• 1.39 MB
  • 41页

预算定额套单价修改学习

  • 41页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'谁有以前的那个套单价1.4版的,有的同志发给我一个,感激不尽,  想研究一下  接http://bbs.co188.com/content/vie...ofid=918&page=5  91楼.......讲.2009-5-719:23上传下载附件(11.62KB)这是模板的结构。里面有几张表隐藏了,你可以按以下步骤来显示他,菜单->工具->宏->2009-5-719:23上传下载附件(9.64KB)下面显示的是所有的表 2009-5-719:23上传下载附件(46.67KB)上图中的最后一行visible便是控制表隐藏与否的关键,你可以将其改为2009-5-719:33上传下载附件(17.57KB) 在模板文件中,里面的数据大家先不要动.现在主要是了解里面的结构,02套单价程序,就是把这个文件的内容复制到新建工程文件的初始内容,其中有一个建模便是我们要修改的内容(单价分析表)其实我们投标时这个模板与我们要求的主要内容是差不多的,大家只要修改一下表头就可以了,在各省的定额与这个模板差不多,有的只是多了一项两项的,以山东水利定额为例,山东定额内容里多了一项  其他费用(%),其计算式为,(人+材+机)*其它费用我们可以改成这样,2009-5-720:09上传下载附件(60.37KB)同样安模也可以改模板文件里有一个费率表大家可以看一下,了解一下整个文件的结构模板的修改大家只要动一下表头内各项的位置就行了,“%%”里面的文字暂时就不要动了,这样就可以自定义模板了。[当然要改动的话,在你以后了解了整个程序也是可以的,]当然在主程序的变动,我们以后再讲.主程序。。。在02单价的安装目录下有一个文件,SL0208、大家把这个文件改为SL0208.xls运行他,这时需要密码,(密码我不说了,大家自已去找,)输入密码,,,,编制一个工程单价在新建的单价文件里打开菜单->工具->宏->vB编辑器打开VBAProject(SL0208),这时要密码,输入密码在EXCEL对象里有一个表,叫定额,我们这几天主要是来了解它,了解数据的格式和结构 2009-5-816:57上传下载附件(29.05KB)2009-5-816:57上传下载附件(16.06KB)修改表定额使之可见当然大家也可去掉整个VBA工程的保护,切换到预算套单价工作薄,这时可以看到工作薄里  定额工作表已经显示出来了,大家可以看到在02单价V1.3中,网友提出的几个问题,是都可以在这儿解决的.第一列数据是"定额电算编号",这个数据是我们定额编号,大家怎细看数据的前面多了一位数,这个数据是用来曲别定额章节的,以它来确定不同的费率,比如:安装工程建筑工程等。第二列数据是"电算编号",这个数据是与定额中的电算编号一样,每一种材料人工机械都有一个唯一的编号,(它的作用一是,在计算时可以提供判断依据,L表示人M表示材料P表示机械,  当然大家也可以加一个其它的字母来代表我们新加的项目。别外一个作用是大家如果是用手工输入定额库的话,可以用,if+VLOOKUP函数写一个东东来简化输入的过程,这样行先建好电算编号,以后就可以只输编号不再用打汉字了。不过不提倡这种输入定额的方法。另外有一个方法,是利用单位的软件导出电子表格的单价分析表进行加工,虽然不全,但是只要把多选一的部分再加进去。总比一条一条输入速度要快[讲座结束时,再送几个函数])第三列数据是 “数量”它是与后面第五列数据是对应的,这个就没什么好说的了。第四列数据  暂且不说第五列数据是“项目名称”它是定额里每一项的项目名称,每一项均与每三列相对应。按顺序输入后面的几列大家一看就知道了。不讲了下面大家选择条目工作表,第六列至第十列是隐藏的,把这几列用鼠标拉开,可能经看到位置列  共有2个数据:大家看下,1、定额:是指在本程序中工作表的名称,[当大家也可以改成省定额,什么的,但是现在先不要改,]。  2、这第2个数据是本项定额在定额工作表中开始的行号。。3、项数,是指自第n行开始本条定额一共多少项。到这里你已经看出定额大致结构了,其它几列,就不讲了,大家自已看吧,在02单价中,所指出的错误,就是在这里改的,现在同志们可以试试修改成几条本省的定额,然后再运行一下,是不是有点意思了。大家不要指望我能讲多细,因为我也是从5.1才开始学习的,希望大家多交流,5月9日............................................2009-5-915:40上传下载附件(50.94KB) 大家看下,表头的位置是可以随意改动的,我们可以多做几个模板,分别命名为AHTB.CFB、AHTB1.CFB、AHTB2.CFB等。最简单的方法是在做单价之前把所要用的模板名字改为AHTB.CFB就可以了。2009-5-915:40上传下载附件(3.16KB)在这里有一个CreateResultFile程序大家看以下一段代码"释放造价模板文件至临时文件夹,文件名为ahsl.cPublicSubFreeCostFilePat(rFilePathAsString)  DimtemPathAsString,strAsString,iAsInteger  DimworAsWorkbook,flmAsString,inputdataAsString  DimmyfileAsSectionedFile  DimstrTempAsString"临时文件夹  "安装后模板文件放置在工作薄同目录下  SelectCasegFileModel  Case1"投标模板    temPath=GetCurrentPath&"ahtb.cfb"  ‘根据我们的选择,定义模板文件的名字[另外我们可以在这里再加入一个询问窗口和IFTHNE语句再增加几个模板。  Case2"清单模板      temPath=GetCurrentPath&"ahqd.cfb"  "清单模板文件的路径&清单文件名  EndSelect  "检查模板文件是否存在  IfVBA.Dir(temPath)=""Then      MsgBox"模板文件不存在或被移动,建议重新安装本软件。",vbOKOnly+vbExclamation,TipCaptionStr      End  EndIf  IfIsFileAlreadyOpen(temPath)Then      MsgBox"创建单价文件错误。模板文件正在使用。",vbOKOnly+vbInformation,TipCaptionStr      End  EndIf  "获得系统临时文件夹  strTemp=String(100,Chr$(0))  GetTempPath100,strTemp  strTemp=Left$(strTemp,InStr(strTemp,Chr$(0))-1)  IfVBA.Right(strTemp,1)<>""ThenstrTemp=strTemp&""   "检测释放的模板文件是否存在和打开  IfVBA.Dir(strTemp&"ahsl.c")<>""Then      IfIsFileAlreadyOpen(strTemp&"ahsl.c")Then        MsgBox"创建单价文件错误。模板文件正在使用。",vbOKOnly+vbInformation,TipCaptionStr        End      Else        KillstrTemp&"ahsl.c"      EndIf  EndIf  "释放模板文件到临时文件夹  ReDimmyfile.Files(1)  ReDimmyfile.Files(1).Bytes(1To10)    OpentemPathForBinaryAs#1  flm=strTemp&"ahsl.txt"  OpenflmForBinaryAs#2      "头文件字节数10      Get#1,1,myfile.Files(1).Bytes      Put#2,1,myfile.Files(1).Bytes  Close#2  OpenflmForInputAs#2      LineInput#2,inputdata      IfTrim(inputdata)<>"AHSLCostMB"Then  ‘AHSLCostMB这几个字是模板文件前10个字符,判断模板文件头10个字节,是否为"AHSLCostMB",        MsgBox"模板文件被损坏,建议重新安装本软件。",vbOKOnly+vbExclamation,TipCaptionStr        End      EndIf  Close#2  Killflm"删除用于检测的头文件  ReDimmyfile.Files(1).Bytes(1ToLOF(1)-10)  flm=strTemp&"ahsl.c"            "AHSL.C为临时文件strTemp为临时文件路径.  OpenflmForBinaryAs#2            "打开临时文件2#通道      "紧接文件头后读出,起始字节为10+1。。。。。。。。。。。。。。。这后面便是我们前面提取到的EXCEL模板文件。。。。。。。。。。。。。      Get#1,11,myfile.Files(1).Bytes      "读模板文件,自11字节开始,也就是去掉AHSLCostMB后的文件      Put#2,1,myfile.Files(1).Bytes              "将读入的数据写入ahsl.c文件.  Close#2                                "关闭文件  Close1#                                "关闭文件  rFilePath=flmEnd Sub哈哈,你能看明白这段代码吗?。。。。。大家有什么问题在下面回复吧,  上面讲的应该是本程序的核心内容了,大家接合主程序认真的看才行,要是有什么问题提出来[不要给我发短消息,直接在下面回帖提出来我们一起来解决],短消息概不回复  下面在第十三十四十五楼继续讲[今天刚从黄山回来,明天再讲,,大家可以先提问题,我根据问题讲]131415我先占下  呵呵[本帖最后由m248131854于2010-9-2720:54编辑]0转播0淘帖0收藏1顶0踩0评分相关帖子模板【视频讲座】模板图和梁平法施工图的快速绘制方法模板拆除理正工具箱6.0-破解(02规范最后一版)求一套广联达破解版本水利概预算编制视频(永久免费)青山软件免费领取软件了(市场价6800一套)gbtk2006安装程序+破解midas/gen中文版7.1.2破解_完全破解的汇宝幕墙计算软件v300-回复使用道具举报提升卡置顶卡1 沉默卡喧嚣卡变色卡千斤顶显身卡yxz57507yxz57507当前离线注册时间2005-6-3在线时间26小时土木币246精华0分享0相册0主题2日志0IP卡狗仔卡沙发发表于2009-5-719:42:12|只看该作者楼主辛苦了,支持下,期待继续 2主题0听众31积分技术员技术员,积分31,距离下一级还需19积分土木币246收听TA发消息回复使用道具评分举报显身卡yxz57507yxz57507当前离线注册时间2005-6-3在线时间26小时土木币246精华0分享0相册0主题2日志0IP卡狗仔卡板凳发表于2009-5-719:50:12|只看该作者在线等待,期待大侠继续讲解…… 2主题0听众31积分技术员技术员,积分31,距离下一级还需19积分土木币246收听TA发消息回复使用道具评分举报显身卡yxz57507yxz57507当前离线注册时间2005-6-3在线时间26小时土木币246精华0分享0相册0主题2日志0IP卡狗仔卡地板发表于2009-5-720:41:59|只看该作者很经典啊,等待楼主继续讲解。 2主题0听众31积分技术员技术员,积分31,距离下一级还需19积分土木币246收听TA发消息回复使用道具评分举报显身卡yxz57507yxz57507当前离线注册时间2005-6-3在线时间26小时土木币246精华0分享0相册0主题2日志0IP卡狗仔卡地下室发表于2009-5-800:03:03|只看该作者楼上的朋友,什么叫“在论坛本软件发布帖中闹腾的也最欢”?“本软件”是不是没有购买的人就不能发表一下个人的看法?别人是不是就不能学习或改进一下吗?[本帖最后由yxz57507于2009-5-1815:33编辑] 2主题0听众31积分技术员技术员,积分31,距离下一级还需19积分土木币246收听TA发消息回复使用道具评分举报显身卡m248131854m248131854当前离线注册时间2004-12-24在线时间22小时土木币683精华1分享0相册0主题18日志0IP卡狗仔卡6#发表于2009-5-817:29:02|只看该作者非常感谢谢饭米粒同志的理解,      发这个贴的本意,不是去破解你的东东,只是想把这个软件的基本思路给大家说一下,看水利行业的同行们能不能都能把全国各省的水利定额都做出来,并且供献出来,大家一起方便工作。大家有什么问题在后面提出,大家一块解决[本帖最后由m248131854于2009-5-817:52编辑] 18主题0听众85积分一星助理工程师一星助理工程师,积分85,距离下一级还需15积分土木币683收听TA发消息回复使用道具评分举报显身卡yangxiaojuan520yangxiaojuan520当前离线注册时间2006-12-29在线时间6小时土木币214精华0分享0相册0主题0日志0IP卡狗仔卡7#发表于2009-5-907:52:35|只看该作者谢谢你的分享。很不错的东西,值得学习和借鉴,真的有我很多需要的东西,再次感谢了! 0主题0听众25积分技术员技术员,积分25,距离下一级还需25积分土木币214收听TA发消息回复使用道具评分举报显身卡voyage777voyage777当前离线注册时间2006-5-25在线时间31小时土木币226精华0分享0相册0主题0日志0IP卡狗仔卡8#发表于2009-5-1215:13:30|只看该作者非常感谢楼主的无私,非常有用的资料。非常感谢楼主的无私,非常有用的资料。 0主题0听众115积分二星助理工程师二星助理工程师,积分115,距离下一级还需35积分土木币226收听TA发消息回复使用道具评分举报显身卡m248131854m248131854当前离线注册时间2004-12-24在线时间22小时土木币683精华1分享0相册0主题18日志0IP卡狗仔卡9#发表于2009-5-1612:28:11|只看该作者回复yxz57507"分别命名为AHTB.CFB、AHTB1.CFB、AHTB2.CFB"上面这些说的是,在投标时,在招标文件中,要求的单价分析表的格式不同,主要区别是表头部分不一样,这样我们先做好几个常用表头的分析表,这样在投标时我们就可以选用适合招标文件的,分析表样式. 18主题0听众85积分一星助理工程师一星助理工程师,积分85,距离下一级还需15积分土木币683收听TA发消息回复使用道具评分举报显身卡wangyl8099wangyl8099当前离线注册时间2008-6-4在线时间1小时土木币325精华0分享0相册0主题5日志0IP卡狗仔卡10#发表于2009-5-1619:51:16|只看该作者楼主你好!看了你破解“02定额套单价v1.3”的文章,对老兄很是佩服,希望能继续看到对“主程序”的破解方法,谢谢大侠!!! 5主题0听众25积分技术员技术员,积分25,距离下一级还需25积分土木币325收听TA发消息回复使用道具评分举报显身卡m248131854m248131854当前离线注册时间2004-12-24在线时间22小时土木币683精华111#发表于2009-5-1814:44:36|只看该作者先回复16楼所提出的第二个问题:2、修改单价分析表的表头或修改里面的局部内容,"分别命名为AHTB.CFB、AHTB1.CFB、AHTB2.CFB",在代码中如何执行这个工作表?这是我前面所提出的一个解决问题的简单办法:例如当你想要用模板AHTB1.CFB做单价时,将AHTB1.CFB改名为AHTB.CFB就可以了,其它模板也可以改为AHTB.CFB。——-----------------------------------------------------------------------------------------------------回复16楼所提出的第6个问题    6、按照大侠的思路,修改好的单价分析表如何复制到原程序中去才可以执行。这个问题的解决方法:一、是在WinHex中打开修改后的excel模板文件,在前面插入“AHSLCostMB”这几个字符。二、是在程序中修改代码。    OpenflmForInputAs#2      LineInput#2,inputdata      IfTrim(inputdata)<>"AHSLCostMB"Then  ‘AHSLCostMB这几个字是模板文件前10个字符,判断模板文件头10个字节,是否为"AHSLCostMB",        MsgBox"模板文件被损坏,建议重新安装本软件。",vbOKOnly+ 分享0相册0主题18日志0IP卡狗仔卡18主题0听众85积分一星助理工程师一星助理工程师,积分85,距离下一级还需15积分土木币683vbExclamation,TipCaptionStr        End      EndIf  Close#2  1、将  [IfTrim(inputdata)<>"AHSLCostMB"Then  ‘AHSLCostMB这几个字是模板文件前10个字符,判断模板文件头10个字节,是否为"AHSLCostMB",        MsgBox"模板文件被损坏,建议重新安装本软件。",vbOKOnly+vbExclamation,TipCaptionStr]前面加单引号“"”,使本程序不执行,不再判断模板文件头是否为"AHSLCostMB"。    2、将Get#1,11,myfile.Files(1).Bytes  改为  Get#1,1,myfile.Files(1).Bytes    3、将修改好的模板文件名直接改为  AHTB.cfb  这样,你是否看懂了。——————————————————————————————————————————————————————————————————————————————————————————————————————————第三个问题  3、最后列出的这段代码,特别是红字标出的部分,不明白什么意思,请详细介绍下Get#1,11,myfile.Files(1).Bytes    这条语句的意思是Get#1读取通道1#文件的内容,11这个数字是从第11字节开始读取若改为1则是从第1个字节开始读取。模板文件的前十个字节是“AHSLCostMB"    Put#2,1,myfile.Files(1).Bytes  这条语句是将刚才读取的内容写入的临时文件"ahsl.c"—————————————————————————————————————————————————————————————————————————————————————————————————————————☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆另外向大家伙推荐一本书:[中文版excel2000宝典]  网上有电字版的大家找下看看吧☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆________________________________________________________________________________________________第五个问题5、原程序中,自定义模板的错误如何修改。这一条现阶段,你可以不用理它,具体程序我没看, 收听TA发消息我想它只在修改后的模板文件前面加了10个字节的数据即“AHSLCostMB"不含引号并他改名为AHTB.cfb——————————————————————————————————————————————————————————————————————————————————————————————————————————其它的问题明天讲吧最近工作有点忙不好意思;      回答  "1、单价分析表如果是表头不同,很容易修改了,但如果单价分析表里面有两、三项不同,如你在讲解的最上面说的山东的单价分析标多了一项其他费用,如何修改,怎么才能反应到代码中去?__________________________________________________________________________________________以山东定额为例,[本人为山东人]  1、修改模板,在模板中机械使用费的下面增加一行,即1.1.4其它费用并在数量列中建立一个公式:=人工费+材料费+机械费[我直接用的汉字,实际做的时要链结好单元格。]  保存好模板。                      2、在定额库中为‘其它费用’定义一个电算代号,也就是与其它材料人工有区别的一个特定代号。我这里定义为q9999                      3、在代码程序FillinDefData中    "机械      Ifs1Like"P????"Ors1Like"R????"Then        Setrng=.UsedRange.Find(what:="机械使用费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen          rng.Offset(1+sMach,0).EntireRow.InsertShift:=xlDown          SelectCasegFileModel          Case1"投标               rng.Offset(1+sMach,-2).Value=s1"电算编号              rng.Offset(1+sMach,0).Value=s6  "名称及规格              rng.Offset(1+sMach,1).Value=s5  "单位              rng.Offset(1+sMach,2).Value=s2  "数量              sMach=sMach+1          Case2"清单              rng.Offset(1+sMach,-2).Value=s1"电算编号              rng.Offset(1+sMach,0).Value=s3  "名称              rng.Offset(1+sMach,1).Value=s4  "规格              rng.Offset(1+sMach,2).Value=s5  "单位              rng.Offset(1+sMach,3).Value=s2  "数量          sMach=sMach+1          EndSelect          EndIf          EndIf”回复使用道具评分举报·显身卡··m248131854m248131854当前离线注册时间2004-12-24在线时间22小时土木币683精华1分享0相册0主题18日志0IP卡狗仔卡18主题0听众85积分19#发表于2009-5-2418:36:37|只看该作者回复16楼,,第一个问题最近工作有点忙不好意思;      回答  "1、单价分析表如果是表头不同,很容易修改了,但如果单价分析表里面有两、三项不同,如你在讲解的最上面说的山东的单价分析标多了一项其他费用,如何修改,怎么才能反应到代码中去?__________________________________________________________________________________________以山东定额为例,[本人为山东人]  一星助理工程师一星助理工程师,积分85,距离下一级还需15积分土木币683·收听TA·发消息 1、修改模板,在模板中机械使用费的下面增加一行,即1.1.4其它费用并在数量列中建立一个公式:=人工费+材料费+机械费[我直接用的汉字,实际做的时要链结好单元格。]  保存好模板。                      2、在定额库中为‘其它费用’定义一个电算代号,也就是与其它材料人工有区别的一个特定代号。我这里定义为q9999                      3、在代码程序FillinDefData中    "机械      Ifs1Like"P????"Ors1Like"R????"Then        Setrng=.UsedRange.Find(what:="机械使用费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen          rng.Offset(1+sMach,0).EntireRow.InsertShift:=xlDown          SelectCasegFileModel          Case1"投标              rng.Offset(1+sMach,-2).Value=s1"电算编号              rng.Offset(1+sMach,0).Value=s6  "名称及规格              rng.Offset(1+sMach,1).Value=s5  "单位              rng.Offset(1+sMach,2).Value=s2  "数量              sMach=sMach+1          Case2"清单              rng.Offset(1+sMach,-2).Value=s1"电算编号              rng.Offset(1+sMach,0).Value=s3  "名称              rng.Offset(1+sMach,1).Value=s4  "规格              rng.Offset(1+sMach,2).Value=s5  "单位              rng.Offset(1+sMach,3).Value=s2  "数量          sMach=sMach+1          EndSelect          EndIf          EndIf”后面添加以下代码:“Ifs1Like "q????"Then        Setrng=.UsedRange.Find(what:="其它费用",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)"其它费用写定额????????????????????????????///        IfNotrngIsNothingThen          "rng.Offset(sMate,-2).EntireRow.InsertShift:=xlDown          SelectCasegFileModel                    Case1  "投标          sMate=1          IfgDeNumber>230017Then            rng.Offset(sMate-1,-2).Value=s1"电算编号            "rng.Offset(sMate-1,0).Value=s6"名称及规格              rng.Offset(sMate-1,1).Value=s5"单位              rng.Offset(sMate-1,3).Value=s2"数量写入单价列          Else              rng.Offset(sMate-1,-2).Value=s1"电算编号            "rng.Offset(sMate-1,0).Value=s6"名称及规格              rng.Offset(sMate-1,1).Value=s5"单位              rng.Offset(sMate-1,3).Value=s2"数量写入单价列            EndIf                      Case2  "清单              rng.Offset(sMate-1,-2).Value=s1"电算编号            "rng.Offset(sMate-1,0).Value=s6"名称及规格              rng.Offset(sMate-1,2).Value=s5"单位              rng.Offset(sMate-1,3).Value=s2"数量写入单价列 在CalSinglePrice程序中将代码修改为PublicSubCalSinglePrice()  DimiAsInteger,quAsString,qutAsString,quzjAsString,qupcAsString,adpcAsString,adzjAsString  Dim人工ad,材料ad,机械ad,直接ad,其他ad,材差ad,装置ad,税金ad,合计adAsString  Dim施管ad,利润adAsString  DimrngAsRange,rng1AsRange,rng2AsRange,rng3AsRange  "设置各人、材、机计算公式  WithgShdj      SelectCasegFileModel      Case1"投标        Setrng=.UsedRange.Find(what:="人工费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen人工ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="材料费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen材料ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="机械使用费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen机械ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="其它费用",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen其它费用ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="直接费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)"其它费用的地址?????????????        IfNotrngIsNothingThen直接ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="其他直接费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen其他ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="材料价差",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen材差ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="未计价装置性材料费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen装置ad=rng.Offset(0, 4).Address        Setrng=.UsedRange.Find(what:="税金",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen税金ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="合计",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen合计ad=rng.Offset(0,4).Address      Case2"清单        Setrng=.UsedRange.Find(what:="人工费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen人工ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="材料费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen材料ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="机械使用费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen机械ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="其它费用",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)"其它费用的地址?????????????        IfNotrngIsNothingThen其它费用ad=rng.Offset(0,4).Address        Setrng=.UsedRange.Find(what:="直接费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen直接ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="施工管理费",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen施管ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="企业利润",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen利润ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="税金",After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen税金ad=rng.Offset(0,5).Address        Setrng=.UsedRange.Find(what:="合计", After:=Range(sTabPos),LookIn:=xlValues,LookAt:=xlWhole)        IfNotrngIsNothingThen合计ad=rng.Offset(0,5).Address      EndSelect    EndWith  Forj=1ToRange(合计ad).Row-Range(人工ad).Offset(1,0).Row      Range(人工ad).Offset(j,0).FormulaR1C1="=ROUND(RC[-2]*RC[-1],"&gJindu&")"  Next  "人工费  IfRange(人工ad).Offset(1).Row<=Range(材料ad).Offset(-1).RowThen    qu=Range(人工ad).Offset(1).Address&":"&Range(材料ad).Offset(-1).Address    Range(人工ad).Formula="=sum("&qu&")"  Else    Range(人工ad).Value=Empty  EndIf  "材料费  IfRange(材料ad).Offset(1).Row<=Range(机械ad).Offset(-1).RowThen    qu=Range(材料ad).Offset(1).Address&":"&Range(机械ad).Offset(-1).Address    Range(材料ad).Formula="=sum("&qu&")"  Else    Range(材料ad).Value=Empty  EndIf回复使用道具评分举报显身卡m248131854m248131854当前离线注册时间21#发表于2009-5-2418:39:07|只看该作者"机械费  qu=""  SelectCase 2004-12-24在线时间22小时土木币683精华1分享0相册0主题18日志0IP卡狗仔卡18主题0听众85积分一星助理工程师一星助理工程师,积分85,距离下一级还需15积分土木币683收听TA发消息gFileModel  Case1"投标      Fori=Range(机械ad).Row+1ToRange(其他ad).Row-1        IfCells(i,Range(机械ad).Column-6).ValueLike"*"Then          qu=qu&","&Cells(i,Range(机械ad).Column).Address          IfCells(i,Range(机械ad).Column-6).ValueLike"9054"Then              adzj=Cells(i,Range(机械ad).Column).Address          Else          "主要机械,计算其他机械的基数              quzj=quzj&","&Cells(i,Range(机械ad).Column).Address          EndIf        ElseIfCells(i,Range(机械ad).Column-6).ValueLike"R*"Then          "嵌套项累计          qut=qut&","&Cells(i,Range(机械ad).Column).Address        EndIf      Nexti  Case2"清单      Fori=Range(机械ad).Row+1ToRange(施管ad).Row-1        IfCells(i,Range(机械ad).Column-7).ValueLike"*"Then          qu=qu&","&Cells(i,Range(机械ad).Column).Address          IfCells(i,Range(机械ad).Column-7).ValueLike"9912"Then              adzj=Cells(i,Range(机械ad).Column).Address          Else              "主要机械,计算其他机械的基数              quzj=quzj&","&Cells(i,Range(机械ad).Column).Address          EndIf        ElseIfCells(i,Range(机械ad).Column-7).ValueLike"R*"Then          "嵌套项累计          qut=qut&","&Cells(i,Range(机械ad).Column).Address        EndIf      Nexti  EndSelect  Ifqu<>""Then    qu=VBA.Mid(qu,2)    qu=qu+qut    Range(机械ad).Formula="=sum("&qu&")"  Else    Range(机械ad).Value=Empty  EndIf     "直接费"  SelectCasegFileModel"  Case1"投标"      qu=Range(人工ad).Address+","+Range(材料ad).Address+","+Range(机械ad).Address+qut"  Case2"清单      qu=Range(人工ad).Address+","+Range(材料ad).Address+","+Range(机械ad).Address+","+Range(其它费用ad).Address"  EndSelect  Range(直接ad).Formula="=sum("&qu&")"  "材差  If(gDeferStyle=2OrgDeferStyle=3)AndgFileModel=1Then      IfgAdjustPrice=1Then        IfRange(材差ad).Offset(1).Row<=Range(税金ad).Offset(-1).RowThen          qu=Range(材差ad).Offset(1).Address&":"&Range(税金ad).Offset(-1).Address          Range(材差ad).Formula="=sum("&qu&")"        Else          Range(材差ad).Value=Empty        EndIf      EndIf  EndIf  "装置性材料费  If(gDeferStyle=2OrgDeferStyle=4)AndgFileModel=1Then      IfRange(装置ad).Offset(1).Row<=Range(税金ad).Offset(-1).RowThen        qu=Range(装置ad).Offset(1).Address&":"&Range(税金ad).Offset(-1).Address        Range(装置ad).Formula="=ROUND(sum("&qu&"),2)"      Else        Range(装置ad).Value=Empty      EndIf  EndIf      "计算零星材料费、其他材料费  Fori=Range(材料ad).Row+1ToRange(机械ad).Row-1      IfCells(i,Range(材料ad).Column-5-gFileModel).ValueLike"M9907"Then        "计算零星材料费        Cells(i,Range(材料ad).Column-1).Formula="=sum("+人工ad+","+机械ad+")"        Cells(i,Range(材料ad).Column).FormulaR1C1="=ROUND(RC[-2]*RC[-1]/100,"&gJindu& ")"      ElseIfCells(i,Range(材料ad).Column-5-gFileModel).ValueLike"M9999"Then        "其他材料的单元格地址        adpc=Cells(i,Range(材料ad).Column).Address      Else        "主材,计算其他材料费的基数        qupc=qupc&","&Cells(i,Range(材料ad).Column).Address      EndIf  Nexti  "其他材料费  Ifqupc<>""Andadpc<>""Then    qupc=VBA.Mid(qupc,2)    Range(adpc).Offset(0,-1).Formula="=sum("+qupc+")"    Range(adpc).FormulaR1C1="=ROUND(RC[-2]*RC[-1]/100,"&gJindu&")"  EndIf  "其他机械费  Ifquzj<>""Andadzj<>""Then    quzj=Mid(quzj,2)    Range(adzj).Offset(0,-1).Formula="=sum("+quzj+")"    Range(adzj).FormulaR1C1="=ROUND(RC[-2]*RC[-1]/100,"&gJindu&")"  EndIf  "清单单价公式  IfgFileModel=2Then      Range(合计ad).Formula="=sum("+直接ad+","+施管ad+","+利润ad+","+税金ad+")"      IfgDeferStyle=1OrgDeferStyle=3Then        Range(施管ad).Offset(0,-2).Formula="="&直接ad      Else        Range(施管ad).Offset(0,-2).Formula="="&人工ad      EndIf      Range(利润ad).Offset(0,-2).Formula="=sum("+直接ad+","+施管ad+")"      Range(税金ad).Offset(0,-2).Formula="=sum("+直接ad+","+施管ad+","+利润ad+")"  EndIf  "计算结束,多选一复0  gChoose=""  gDelItem=""  Range(sTabPos).SelectEndSub          End Select        EndIf      EndIf——————————————————————————————————————————————————————————————————————————今天先讲这儿,待回答完问题再讲这几天比较忙,不好意思回复使用道具评分举报显身卡hanhuawei138hanhuawei138当前离线注册时间2007-9-13在线时间3小时土木币209精华0分享0相册0主题0日志0IP卡狗仔卡0主题0听众26积分22#发表于2009-5-2617:46:18|只看该作者楼主讲解的这些很好,可是我对VB是一点不懂,看着你的讲解都晕了,不知道哪是哪个了,能不能联系下,直接发个你改过错误的程序呀,我的邮箱是hanhuawei138@qq.com,谢谢了。 技术员技术员,积分26,距离下一级还需24积分土木币209收听TA发消息回复使用道具评分举报显身卡yxz57507yxz57507当前离线注册时间2005-6-3在线时间26小时土木币246精华0分享0相册0主题2日志0IP卡狗仔卡2主题0听众31积分技术员技术员,积分31,距离下一级还需19积分土木币23#发表于2009-5-3014:19:05|只看该作者期待楼主继续,……。 246收听TA发消息回复使用道具评分举报显身卡wjy1974wjy1974当前离线注册时间2007-9-8在线时间33小时土木币283精华0分享0相册0主题28日志0IP卡狗仔卡28主题0听众175积分三星助理工程师三星助理工程师,积分175,距离下一级还需25积分土木币283收听TA24#发表于2009-6-716:21:01|只看该作者kankanxiexielouzhu! 发消息回复使用道具评分举报显身卡longhaotianlonghaotian当前离线注册时间2006-10-22在线时间21小时土木币197精华0分享0相册0主题0日志0IP卡狗仔卡0主题0听众27积分技术员技术员,积分27,距离下一级还需23积分土木币197收听TA发消息25#发表于2009-6-920:16:36|只看该作者定你大虾回复使用道具评分举报显身卡 hjz18hjz18当前离线注册时间2005-2-27在线时间1小时土木币231精华0分享0相册0主题3日志0IP卡狗仔卡3主题0听众25积分技术员技术员,积分25,距离下一级还需25积分土木币231收听TA发消息26#发表于2009-6-1114:06:36|只看该作者虽然看不懂,但一定要顶回复使用道具评分举报显身卡 hjz18hjz18当前离线注册时间2005-2-27在线时间1小时土木币231精华0分享0相册0主题3日志0IP卡狗仔卡3主题0听众25积分技术员技术员,积分25,距离下一级还需25积分土木币231收听TA发消息27#发表于2009-6-1409:49:35|只看该作者m248131854你好,我按你的说法,将ahtb.cfb复制另存为投标模板.xls后,用EXCEL却找不到投标模板.xls这个文件呢,怎么才能找开编辑呢。本人初学期待各位高手能给解答一下,谢谢。这么好的软件要是不要注册码多好啊!!回复使用道具评分举报显身卡hjz18hjz18当前离线注册时间28#发表于2009-6-1415:21:42|只看该作者 2005-2-27在线时间1小时土木币231精华0分享0相册0主题3日志0IP卡狗仔卡3主题0听众25积分技术员技术员,积分25,距离下一级还需25积分土木币231收听TA发消息上面哪个问题已经解决,但是在SL02安装目录下怎么找不到SL0208这个文件!!!我用的是EXCEL2007版的。有哪位大侠知道的,能说一下是怎么回事吗??回复使用道具评分举报显身卡hanhuawei138hanhuawei138当前离线注册时间2007-9-13在线时间3小时土木币29#发表于2009-6-2218:08:53|只看该作者回答楼上的那个SL0208文件属性是隐藏的,你需要在操作系统里面设置把它显示出来,然后按照楼主的讲解就行了。 209精华0分享0相册0主题0日志0IP卡狗仔卡0主题0听众26积分技术员技术员,积分26,距离下一级还需24积分土木币209收听TA发消息回复使用道具评分举报显身卡gayidgayid当前离线注册时间2005-7-19在线时间17小时土木币206精华030#发表于2009-6-2409:30:39|只看该作者谢谢楼主,再次感谢楼主慷慨。 分享0相册0主题3日志0IP卡狗仔卡3主题0听众25积分技术员技术员,积分25,距离下一级还需25积分土木币206收听TA发消息"机械费  qu=""  SelectCasegFileModel  Case1"投标      Fori=Range(机械ad).Row+1ToRange(其他ad).Row-1        IfCells(i,Range(机械ad).Column-6).ValueLike"*"Then          qu=qu&","&Cells(i,Range(机械ad).Column).Address          IfCells(i,Range(机械ad).Column-6).ValueLike"9054"Then              adzj=Cells(i,Range(机械ad).Column).Address          Else          "主要机械,计算其他机械的基数              quzj=quzj&","&Cells(i,Range(机械ad).Column).Address          EndIf        ElseIfCells(i,Range(机械ad).Column-6).ValueLike"R*"Then          "嵌套项累计          qut=qut&","&Cells(i,Range(机械ad).Column).Address        EndIf      Nexti  Case2 "清单      Fori=Range(机械ad).Row+1ToRange(施管ad).Row-1        IfCells(i,Range(机械ad).Column-7).ValueLike"*"Then          qu=qu&","&Cells(i,Range(机械ad).Column).Address          IfCells(i,Range(机械ad).Column-7).ValueLike"9912"Then              adzj=Cells(i,Range(机械ad).Column).Address          Else              "主要机械,计算其他机械的基数              quzj=quzj&","&Cells(i,Range(机械ad).Column).Address          EndIf        ElseIfCells(i,Range(机械ad).Column-7).ValueLike"R*"Then          "嵌套项累计          qut=qut&","&Cells(i,Range(机械ad).Column).Address        EndIf      Nexti  EndSelect  Ifqu<>""Then    qu=VBA.Mid(qu,2)    qu=qu+qut    Range(机械ad).Formula="=sum("&qu&")"  Else    Range(机械ad).Value=Empty  EndIf    "直接费"  SelectCasegFileModel"  Case1"投标"      qu=Range(人工ad).Address+","+Range(材料ad).Address+","+Range(机械ad).Address+qut"  Case2"清单      qu=Range(人工ad).Address+","+Range(材料ad).Address+","+Range(机械ad).Address+","+Range(其它费用ad).Address"  EndSelect  Range(直接ad).Formula="=sum("&qu&")"  "材差  If(gDeferStyle=2OrgDeferStyle=3)AndgFileModel=1Then      IfgAdjustPrice=1Then        IfRange(材差ad).Offset(1).Row<=Range(税金ad).Offset(-1).RowThen          qu=Range(材差ad).Offset(1).Address&":"&Range(税金ad).Offset(-1).Address          Range(材差ad).Formula="=sum("&qu&")"        Else          Range(材差ad).Value=Empty        EndIf      End If  EndIf  "装置性材料费  If(gDeferStyle=2OrgDeferStyle=4)AndgFileModel=1Then      IfRange(装置ad).Offset(1).Row<=Range(税金ad).Offset(-1).RowThen        qu=Range(装置ad).Offset(1).Address&":"&Range(税金ad).Offset(-1).Address        Range(装置ad).Formula="=ROUND(sum("&qu&"),2)"      Else        Range(装置ad).Value=Empty      EndIf  EndIf      "计算零星材料费、其他材料费  Fori=Range(材料ad).Row+1ToRange(机械ad).Row-1      IfCells(i,Range(材料ad).Column-5-gFileModel).ValueLike"M9907"Then        "计算零星材料费        Cells(i,Range(材料ad).Column-1).Formula="=sum("+人工ad+","+机械ad+")"        Cells(i,Range(材料ad).Column).FormulaR1C1="=ROUND(RC[-2]*RC[-1]/100,"&gJindu&")"      ElseIfCells(i,Range(材料ad).Column-5-gFileModel).ValueLike"M9999"Then        "其他材料的单元格地址        adpc=Cells(i,Range(材料ad).Column).Address      Else        "主材,计算其他材料费的基数        qupc=qupc&","&Cells(i,Range(材料ad).Column).Address      EndIf  Nexti  "其他材料费  Ifqupc<>""Andadpc<>""Then    qupc=VBA.Mid(qupc,2)    Range(adpc).Offset(0,-1).Formula="=sum("+qupc+")"    Range(adpc).FormulaR1C1="=ROUND(RC[-2]*RC[-1]/100,"&gJindu&")"  EndIf  "其他机械费  Ifquzj<>""Andadzj<>""Then    quzj=Mid(quzj,2)    Range(adzj).Offset(0,-1).Formula="=sum("+quzj+")"    Range(adzj).FormulaR1C1="=ROUND(RC[-2]*RC[-1]/100,"&gJindu&")"  EndIf  "清单单价公式  IfgFileModel=2Then      Range(合计ad).Formula="=sum("+直接ad+","+施管ad+","+利润ad+","+税金ad+")"      IfgDeferStyle=1OrgDeferStyle=3 Then        Range(施管ad).Offset(0,-2).Formula="="&直接ad      Else        Range(施管ad).Offset(0,-2).Formula="="&人工ad      EndIf      Range(利润ad).Offset(0,-2).Formula="=sum("+直接ad+","+施管ad+")"      Range(税金ad).Offset(0,-2).Formula="=sum("+直接ad+","+施管ad+","+利润ad+")"  EndIf  "计算结束,多选一复0  gChoose=""  gDelItem=""  Range(sTabPos).SelectEndSub          EndSelect        EndIf      EndIf——————————————————————————————————————————————————————————————————————————今天先讲这儿,待回答完问题再讲这几天比较忙,不好意思'