这个项目上vba程序写了不少,不过也悟出了一些心得,对以后任何一门语言开发都有帮助。下面是我思考的一些开发体会。
1.溢出错误
之前写程序跑报表最常见的一个错误,就是因为行结束的标记是结果或者总计结果,然后我一行行的判断是否已经找到,当query插入的位置变化了,或者没有这个技术标记就出现溢出错误(我用integer来记录行号,最大值是32767)。这两天思考了下,其实可以不用这么做,现在我觉得用find方法直接去找结束标记,然后再用err对象去处理错误。这样可读性更高,也不会报表报错的情况。
2.query插入位置变化造成函数参数的修改
之前写了一个insert的sub以为比较高明,其实完全可以用find方法找到query的位置,这样子无论query插入位置怎么修改都不会造成代码的修改,也就不会耽误我那么多时间,好的设计真的非常重要。
3.query结构变化造成的修改
虽然我把拷贝query到报表的程序单独分离出来写成一个sub,但是改起来我觉得还是麻烦,我就是喜欢不断突破极限,现在我觉得有更好的方法。将query和报表的位置信息保存在一个数组里,在把数组作为一个参数传进一个sub里,那么以后该vba就变的非常容易,只要改一个数组就好了,修改调试时间大大减少,也极大的减少了复杂度。变化的部分已经完全被拆分出来了,变成了固定的。
4.即时总结
当我第一个程序就一个方法写的时候,后面碰到所有类似的问题我都会用同一个方法去做,不光是程序,还有生活中的其它问题,于是有时候重复过去的不一定是好的,现在我做的动态都是一种方法,现在好好反思觉得有了更好的方法,可是已经来不及了。那其实很多资深顾问也不见得更优秀,因为他们都只用一种方法去解决类似却不相同的问题,方法不一定是最好的。时刻保持探索学习的心态才能成长的更快,哪怕我已经干了十或者二十年年的ERP,这才是一个优秀的顾问。