作者moodyblue ()
看板Accounting
标题[心得] VBA如何侦测程式错误
时间Wed Feb 15 23:51:03 2017
VBA如何侦测程式错误
网志图文版:
http://www.b88104069.com/archives/4169
Office不管是Word或者是Excel,都有提供拼字检查的服务。打字时、特别
是打英文的时候,有单字拼错了、有文法上小错误,微软都会以下红曲线贴
心地提醒你,这个地方有点不太对劲,这个是边打边检查,等到全部打完一
篇文章,还可以呼唤微软,帮忙文章从头到尾再检查一次。在VBA里面,微
软也提供类似的侦错服务。比较起来,文章有疏误,一般仍然可以阅读理解
,VBA是高度规范化的程式语言,学给计算机看的,只要哪个地方出差错,
无论大小,VBA便会卡住无法再运作下去。所以一方面,要以软体工程师的
谨慎精神编写VBA,另一方面,如果能善用微软所提供的小工具,写VBA程式
会更有感觉。以下具体分享:
一、先前章节的VBA程式,以此作为范例。最下面倒数第二行,本来是正确
的「RefersTo」,故意把中间的「s」,当作笔误,变成错误的「ReferTo」
。
二、「执行」、「执行Sub或Userform」,这样是从头到尾跑完所有程式。
三、出现提示错误视窗:「物件不支援此属性或方法」,按下「侦错」。
四、Excel会将错误的那一行程式标明黄色,「Names」名称物件不支援「
ReferTo」!
五、修改完後,「执行」、「继续」,如果没有再跳异常,表示程式OK。
六、程式量多的时候,一步一步检查比较方便:「侦错」、「逐行」。
七、第一行标黄色,在这里不是代表有错误,而是目前逐行侦错在执行这一
行程式。
八、第二行漏写了中间的「u」,VBA提示错误。
九、除了执行侦错,在编写VBA时,应该养成习惯,全部程式用小写英文编
打,如果拼字无误,VBA会自动马上转换成首字大写,例如输入「if」,跳
到下一行,马上会自己变成「If」,这是蛮贴心的即时程式侦测。
十、最後介绍「侦错」里的「切换中断点」,作用是分段执行VBA,某些场
合可能需要。如图所示,快速键是「F9」,另外直接在图片咖啡圆点那里,
滑鼠左键点击也是同样效果。
曾经设计一个稍微复杂的Excel公式,成功达到想要的效果,当我开心向别
人展示时,别人只是冷冷回我一句:「这个没有太麻烦,手动输入就好了吧
。」当场我脸上是三条线,不过回头想想,会计上有个成本效益原则,操作
Excel时,确实也应该做这方面的考量。花时间钻研,能达到效果还是好的
,有种情况是,出於对函数及VBA不熟、或者Excel本身限制,绕了一圈,回
来仍然一步一步手工操作,想追求效率,结果却是适得其反。而VBA相较於
函数公式,功能更加强大,在设计上必须花更多时间、难度也是更高。所以
工作时要保持一个原则,避免走火入魔,如果这东西不是每个月重复用到、
如果简单几步就能手工输入,除非已经是Excel达人,也许那就手工输入吧
。不过话说回来,武功高强的人,最後绝对跑的比较快,利用空闲时间多多
练习Excel VBA,长期而言,工作效率一定是up、up、up!共勉之。
延伸阅读:
VBA如何整理程式代码
http://www.b88104069.com/archives/4157
VBA如何更新汇率
http://www.b88104069.com/archives/4159
VBA如何更新会计期间
http://www.b88104069.com/archives/4158
--
周末,我们继续Excel:=>21.心得=>5.其他=>3.office
会计人的Excel小教室:
https://www.facebook.com/acctexcel
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.20.96.155
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Accounting/M.1487173870.A.723.html
1F:推 OmegaDeath: 推 02/16 10:27