VBA中的错误处理
从理论上讲,VBA没有提供任何的错误处理机制,这种被用在微软Office产品中的以Visual Basic语言为基础的脚本语言根本就不要任何的错误处理,当程序出现错误或产生异常情况时,VBA会自动定位到出错的代码行,然后提示用户出错的可能原因。这是典型的脚本语言的错误提示,联想到javascript语言,在浏览器中如果出现脚本错误,浏览器会给出提示信息,但这并不影响整个程序的正常运行,最多也就是出现错误之后的脚本不被继续解释而已。不过即便如此,javascript还是提供了较为良好的错误处理机制,例如常见的try catch语句和alert提示,以及后来支持的debugger调试信息等,javascript在支持面向对象语言特性的同时也逐渐改善了它的错误处理和调试方法。
然而Visual Basci却没有这么幸运,从诞生之初,Visual Basic就没有提供一个比较好的错误处理机制,尽管我们在实际应用中总会遇到这样或那样的运行时错误(例如错误删除文件、磁盘驱动器空间不够、网络通信发生异常等),但是对于Visual Basic的过程来说根本就没有错误处理,当错误产生时程序便停止运行,直到异常被清除。有关比较详细的介绍Visual Basic的错误处理和调试方法的文章,读者可以参考下面这个链接。
http://www.officexy.com/Articles/office/VBABasic/20061026103436501.htm
VBA的语言特性类似于Visual Basic,应该说它们属于同一家族,所以,用来在Visual Basic中处理程序异常的方法也同样可以被用在VBA中。
在Visual Basic中,常用的程序错误处理的方式是设置或使用错误陷阱,以告诉应用程序当错误发生时转移到何处(或处理当错误发生时要运行的代码),通过在代码中定义标签来告知应用程序当错误发生时要转到的地方。这一点和C系列语言的错误处理方式是相同的。基本步骤如下:
1. 设置一个有效的错误陷阱,以告诉应用程序发生错误时转移到何处继续运行。Visual Basic中的On Error语句可以使错误陷阱有效,并为应用程序指定错误处理的入口。
2. 在错误程序的入口处编写响应错误的具体实现,如继续尝试执行之前的代码、或告知用户出错的具体原因以让用户尝试去解决等。
3. 退出错误处理。
有关如何使用Visual Basic的错误处理和On Error语句的具体含义,读者可以仔细阅读上面给出的那个链接的文章,里面有非常详细的介绍。我在这里会结合实际应用来讲讲在VBA中如何具体使用错误处理。
先看一个简单的示例。
更多相关文章
- jquery ajax readystate 0 responsetext status 0 stext错误
- 为什么我收到此错误:“未捕获的TypeError:无法读取未定义的属性'标
- 如何避免pro拖拉机中的“jasmin .suite() required”错误消息?
- “错误:路径必须是字符串”(v5.10.0)
- 使用bootstrap模式框的自定义选择框错误
- $.each遍历JSON字符串和 Uncaught TypeError: Cannot use 'in' o
- 2_python连接MariaDB错误
- 获取错误“ValueError:int()的无效文字,基数为10:'3128;'在运行Tensor
- GIS / Gdal / OSGeos在Windows上的django中导入错误