|||
VBA编程十几年了,这些年我犯过无数的错误,收集一下以娱自己:
1.忘记设定option explicit. 由于拼写错误而导致产生的新变量,而不是打算写的那个变量.
2.忘记写对应的End if 或 End with,这个也非常常见.
3.变量范围没有写正确,该Public的写成了Private(反之可以运行但是不太安全)
4.最奇葩的一次,声明一个字串,写成了 dim s&,而这个值正好用来存放数值的字串,结果直接整成了长型(&).正确的应该是dim s$
5.比较奇葩的一次,比较a/b/c/d四个值中的最小值,根据谁是最小值(类似min=a)来写四个平行的分支代码.没有想到(min=a)的分支执行完之后,碰到一个(min=b)也成立的情况,结果两个分支都走了一次,出错了.不是调试还真看不出来.
6.总喜欢在VBA在设置引用FileSystemObject的VBS运行时库,却忘记他人的机子上可能没有这样的设置.
7.忘记检查被除数是否为0
8.对象没有确定是存在就调用其方法(这个主要在首次写某段代码时出现).
9.很高兴还能在VBA中使用goto 语句
10.以前总喜欢在代码中使用数字硬编码,比如单元格的地址(行/列),数组的大小尺寸,现在好一点,习惯在头部集中声明.
11.忘记在字串形式存放的代码中加入应有的引号(SQL语句,回调函数等)
12.用integer数值来存放EXCEL中Range的行数,有时会溢出出错(EXCEL2016的行数远远超过整型值的上限).
13.在32位EXCEL中写的代码,在64位EXCEL中有的代码不能运行(涉及API的),要改.
14.拿起键盘就写,写到一半发现思路混乱,越来越混乱写不下去了.只好推倒重来.
15.有时感觉写来写去,编码水平没有什么提升,很无望;
16.有时总在一些非常细节的小问题上绞尽脑汁,很挫败.比如昨天不小心将自定义的菜单命名为"Custom"之后,出现了无法showpopup的问题,查来查去找不出原因. 山穷水尽之后换个名字竟然就解决了.
16.
待更新
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 23:19
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社