大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

Office之VBA异常处理语句On Error介绍及实例

Admin | 2010-3-13 17:19:25 | ReadNums | 22744 | 标签 Excel教程 | 打印本页
     

  在Excel中使用VBA,相当的方便,但是不能排除代码本身的错误。

  一旦代码出现错误,Excel就会终止代码的运行,重则造成Excel程序崩溃。下面,给大家介绍一下,相应的VBA异常处理语句On Error介绍,以防不测。

  一、On Error 语句的语法介绍

  On Error 语句,其功能是:启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。

  ①语法形式

  On Error GoTo line           
  On Error Resume Next      
  On Error GoTo 0

  ②参数介绍

  On Error GoTo line :启动错误处理程序,line 参数可以是任何行标签或行号。如果发生一个运行时错误,则程序会跳到 line指定的位置,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同;否则会发生编译时间错误。

  On Error Resume Next :当一个运行时错误发生时,程序转移到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。

  简言之,On Error Resume Next的作用就是,哪行发生错误,就忽略这一行不执行,直接跳到错误行的下一行继续运行。

  On Error GoTo 0 :禁止当前过程中任何已启动的错误处理程序。

  二、On Error 语句的实例

  实例一:

  On Error GoTo MyWrong

  Sheets("绩效工资").Delete '如果绩效工资工作表存在,则马上删除并强制退出程序

  Exit Sub

  MyWrong: '如果绩效工资工作表不存在,则无条件转移到该处,并给出提示!

  MsgBox "绩效工资工作表不存在!"

  实例二:

  On Error Resume Next

  Sheets("绩效工资").Delete '删除绩效工作工作表;不管绩效工资工作表存不存在,都不会有任何错误提示

  MsgBox "绩效工资工作表不存在!"

  实例三:

  On Error GoTo MyWrong

  On Error goto 0

  Sheets("绩效工资").Delete '删除绩效工作工作表;

  MyWrong: '如果绩效工资工作表不存在,则无条件转移到该处,并给出提示!

  MsgBox "绩效工资工作表不存在!"

  代码说明,由于On Error goto 0已经禁止当前过程中任何已启动的错误处理程序,因此,就相当于没有On Error GoTo MyWrong,只要遇到问题,Excel就会发生异常,弹出提示甚至崩溃。

  请注意On Error GoTo MyWrong和On Error goto 0的顺序,不能颠倒。


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日