14Excel VBA 学习总结善待异常.docx
《14Excel VBA 学习总结善待异常.docx》由会员分享,可在线阅读,更多相关《14Excel VBA 学习总结善待异常.docx(6页珍藏版)》请在三一办公上搜索。
1、14Excel VBA 学习总结 善待异常Excel VBA 学习总结 - 善待异常 “生活就像一面镜子,你怎么对待她,她就怎么对待你”。这句话放到异常处理中就再合适不过了;每一门语言都提供了异常处理机制;合理有效的避免、处理错误与异常,也是编程中不可回避的内容。 主流的开发语言,基本上都提供了类似于try/catch的异常处理机制;某些语言,例如C+与Jave,甚至还可以为函数声明可能出现的异常。这些手段结合起来基本上可以把异常消弭在萌芽状态,还程序一个安全的运行空间。对于这个方面,很遗憾,VBA做的不是太好;下面我总结一下异常处理几种常见的方式。 1. 使用保卫语句,尽量避免出现异常 异常
2、,通常指的是程序处于未定义的状态,执行未定义的行为。在大多数情况下,程序的状态都在我们的控制之中,对于一些异常的情况,我们也是可以预料到的,并可以辅助以各种判断语句加以保护,避免异常的出现;这些语句通常就叫做“保卫语句”。采用“保卫语句”,我们可以避免大部分异常情况,这是程序设计中很常用的一项技巧。毕竟异常是程序的非法状态,不仅异常处理语句的执行效率很低,而且需要我们耗费很多的时间去调试和处理。所以如果有可能事先处理掉错误和异常,这对于程序的开发和执行都是相当有益的。看一个小例子: Public Sub Sample Dim i As Integer Dim j As Integer 使用i与
3、j完成一些语句 . 后面除法的保卫语句 If j = 0 Then MsgBox 除数不能为0. End If MsgBox i / j End Sub 2. VBA可以提前编译,发现部分异常 VBA程序可以在运行前编译一下,这时某些异常是可以提前发现的,比如变量类型没有定义的情况(Option Explicit开启的时候)。做法是在VBA编辑器中,点击“Debug”下面的“Compile VBAProject”菜单就可以编译一下程序。 3. VBA中的异常处理 使用保卫语句,我们能避免相当一部分异常,但是还是有很多其它的异常,我们是难以预料的。所以还需要设计其它的途径捕获这些错误。在VBA中
4、可以使用On Error语句和Resume语句处理异常。 On Error语句 这个语句是VBA异常处理的核心语句,它指明了当异常发生时程序应该做的动作。它有下面几种形式: On Error Goto 0 On Error Resume Next On Error Goto : 第一种形式,On Error Goto 0, 是VBA的默认模式。使用它的时候,一旦遇到运行时的错误,它就显示一个标准的错误信息对话框,告诉用户错误的类型并可以进行调试。这是VBA的默认行为,与没有设置异常处理是一样的。所以一般并没有人使用。 第二种形式,On Error Resume Next ,是比较常用,但是也常
5、常误用的一种方式。使用这种形式的时候,一旦遇到错误,它就跳到错误发生位置的下一行继续执行。这个时候如果出错的情况并不影响程序的正常功能,我们可以修复并跳过去执行;但是更多的等情况是,我们需要使用的很多状态是与出错的语句是相关的,不能直接跳过。这个时候,我们可以测试Err对象的Number属性是否等于0来判断出现的问题,并妥善解决。例如: On Error Resume Next N = 1 / 0 cause an error If Err.Number 0 Then N = 1 End If 第三种形式, On Error Goto :,是最常用的方式。这个语句告诉VBA,当出现异常的时候,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 14Excel VBA 学习总结 善待异常 14 Excel 学习 总结 善待 异常
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3142160.html