打印本文 打印本文 关闭窗口 关闭窗口
Office之VBA异常处理语句On Error介绍及实例
作者:武汉SEO闵涛  文章来源:敏韬学习网  点击数976  更新时间:2010/6/21 21:38:51  文章录入:mintao  责任编辑:mintao

  在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的顺序,不能颠倒。

打印本文 打印本文 关闭窗口 关闭窗口