你不知道的VBA|VBA 过程中可能会发生的三种错误

编译错误
编译错误是因为过程中的VBA代码书写错误产生的,写错关键字、语句结构不配对等都会引起编译错误,如:
当试图执行存在编译错误的VBA过程时,VBA会拒绝执行,并显示一个对话框提示出错原因,如图 9-1 所示。
运行时错误
如果过程在执行时试图完成一个不可能完成的操作,如除以 0、打开一个不存在的文件、删除正在打开的文件等都会发生运行时错误。
VBA不会执行存在运行时错误的代码,并会通过对话框告知我们出错的原因,如图 9-2所示。
逻辑错误
如果过程中的代码没有任何语法问题,执行过程时,也没有不能完成的操作,但执行过程后,却没有得到预期的结果,那么这样的错误称为逻辑错误。
举个例,如果要把 1 到 10 的自然数依次写进A1 : A10 区域,却将过程写成这样:
这个过程中的每行代码都没有语法错误,也没有不可执行的操作,但执行过程后,却没有得到期望的结果,如图 9-3 所示。
执行过程没有得到期望的结果,是因为循环体中的代码“Cells(1, 1).Value = i”存在问题。虽然过程中的代码将 1 到 10 的自然数都写入了单元格中,但每次写入数据的都是Cells(1, 1)引用的A1 单元格,所以执行过程后,看到的是最后一次写入单元格中的 10。
很多原因都会导致过程出现逻辑错误,如循环变量的初值和终值设置错误,变量类型不正确等。与编译错误和运行时错误不同,存在逻辑错误的过程,执行后Excel并不会给出任何提示。所以,逻辑错误最不容易被发现,但是在所有错误类型中占的比例却最大。
调试代码时,很多时候都是在处理过程中存在的逻辑错误。
(0)

相关推荐