7.1 VBA中可能会发生的错误

04-13Ctrl+D 收藏本站

关灯 直达底部

7.1.1 编译错误

如果编写代码时不遵循VBA的语法规则,如未定义变量、函数或属性名称拼写错误、语句不配对(如有If没有End If,有For没有Next)等都会引起编译错误,如图7-1所示。

存在编译错误的程序,运行时系统会显示一个提示对话框,程序不会被执行,如图7-1所示。

图7-1 运行存在编译错误的程序

7.1.2 运行时错误

如果程序在运行过程中试图完成一个不可能完成的操作,如除以0、打开一个不存在的文件、删除一个打开的文件等都会发生运行时错误。

运行存在运行时错误的程序,执行到错误代码所在行时,Excel会显示一个错误提示对话框,如图7-2所示。

图7-2 运行存在运行时错误的程序

7.1.3 逻辑错误

当程序中的代码没有语法问题,程序运行时,也没有不能完成的操作,但程序运行结束后,却不能得到预期的结果,这样的错误称为逻辑错误。

把1到10的自然数依次写进A1:A10单元格,如果程序写成这样:

这个程序里的每句代码都没有语法错误,也没有不能完成的操作,但运行后却不能得到预期的效果,如图7-3所示。

图7-3 程序运行前后

编写程序时,很多原因都会引起逻辑错误。如:循环变量的初值和终值设置错误,变量类型不正确,代码顺序不正确等,而这些代码单独存在并没有任何问题。

同其他两种错误不同,存在逻辑错误的程序,运行后程序会正常执行,Excel并不会给出任何提示。所以,逻辑错误最难被发现,但在所有错误类型中占的比例却最大。

因此,调试代码时,多数时间都是在修改程序中存在的逻辑错误。