本帖最后由 mythqiu 于 2018-8-10 00:50 编辑
这个计算式表格,写到这里,我曾经的设想基本实现.几点感悟:
1,基本功能搭建是很快的.如果要功能稳定,考虑错误的容错,纠错就是一个很慢的过程了.
2,通过写这个程序,进一步熟悉了vba.
3,功能方面,基本的计算式功能可以说是相当的方便了.作为一个计算式表格,可以说代码也是相当的多.
很多人都写过这个小型的vba,作为造价算量的工程人员的专用表格,许多同行多多少少自己用函数\vba制作过这类东西.简单的代码就一个sub搞定.我自己也曾经只是写几个函数,用名称管理器集合几个内置函数自己用(您可以在现在的vba版本中看到他们的影子).
虽然函数看不出来了,其实直接在相应的地方添加我写的名称,任然可以出相同的结果.
后来,既然都vba了,全都vba吧.这样一路走来,2个月,程序框架是很快就搭建起来了,公开了密码的,您也可以看到.
一开始就是准备的过程,函数调用思维.所有您可以看到,基本所有的函数function,过程sub都有参数.没有参数的是为了适合vba中内建的快捷调用不好传递参数.
修修改改一个月的时候,其实大的功能基本定性了,后来的代码就是为了更快\更方便发展了.当然有些代码还是很慢,特别是格式化数据.其实可以把这些代码都删了,数据就一样的格式,区分起来有点不方便而已.
4,基本功能介绍
4.1 每个分类符号是$,我的思路是您不用在序号列输入任何东西,您在所在部位输入@就行了
4.2 自动小计原来还需要您在序号输入$$,现在您点下右键,选中小计即可,您也不必输入啥符号了
4.3 上标功能 F4,右键,双击左键选中都可以实现.这个功能一开始就有这个想法,但苦于没有掌握方法,网上资料基本没有,直到昨天才完成.以前的可以上标但是无法对计算式操作,所有你会发现,一旦上标,计算式输入的*不会转换为×了,那是因为,一旦转换,您的上标就会消失了.当然,现在是完全不会有这个问题了.
4.4 一键重算 Ctrl+F9 和右键都可以实现,右键谢了2个功能,一个飞快,一眨眼就完成,一个要对计算式格式化,取决于计算式长短和备注字符多寡,时间可能很快,也可能很慢很慢,特别是太多的汉字太多的汉字备注.
4.5 序号乱了,小计不对了. Ctrl+F11,其实您一行行书写下来,序号是不可能乱的,实在是删除\插入太多了,乱了就用这个办法.
4.6 一键新建计算薄,以前是自己复制,满满的几百行计算好的,复制过来还的删除已经算好的内容,搞不好计算的表格搞错了,还会出错.现在好了,Ctrl+F5一下就好.一个空白的只有表头的计算稿出现了.
4.7 其他的一下快捷功能您只能自己去发现了.
4.8 支持所有内置函数,本版本附送2个基坑算量函数,拿去不谢.写得不好,也别怪我.只有自己在源程序中看注释如何使用了.
4.9 支持中文直接标注,其他如英文,数字,符号用[]框起来.
4.10 支持计算式中部分计算式求值,用{}框起来.此功能是工程算量的利器啊.{}当()使用,四则运算中有优先作用.
5 结束了...__________________________________________
更新于 2018年8月10日00:38:47
手痒,发现计算式中大量连续汉字备注处理太慢(虽然实际不可能这么多连续汉字,我是在计算式中汉字当使用说明了,所有有大段的连续汉字),更新了一下.老版本保留,大家可以对比一下第1条计算式的格式化速度.
另:不连续的汉字处理速度不会明显提高处理速度,实际使用备注汉字不可能如此的长,所以实际使用中2个版本速度不会有太大的速度差别.
之所以慢,不是计算慢,是处理汉字格式化慢,正则是一个一个汉字处理,导致格式化也是一个一个汉字格式化,所有就慢了.这也是Ctrl+F9计算所有计算式很快能完成,因为这个命令只管计算,这个sub不会处理备注,数字,运算符号的格式化.
改成先把连续汉字找出来,集中格式化.虽然代码变长了,速度却提示7倍.以我样本的第一条计算式添加时间代码测试的.
这个修订版本时间代码注释掉了,没删,熟悉vba的可以去掉注释测试一下,这之前的版本没时间代码,需要自己在原来的循环外添加测试.
|