dingsir的个人博客分享 http://blog.sciencenet.cn/u/dingsir

博文

VBA编程中经常碰到的错误

已有 3598 次阅读 2018-2-24 10:12 |个人分类:软件杂谈|系统分类:教学心得| VBA, 编码, 错误, 心得

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.


待更新



https://blog.sciencenet.cn/blog-1213210-1100980.html

上一篇:EXCEL的BUG吗? 多项式拟合的精度问题与注意事项
下一篇:本人13年前的一个老贴子<我的收音机情缘>
收藏 IP: 58.221.89.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-22 23:19

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部