Dzwebs.Net

撰写电脑技术杂文十余年

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

Admin | 2010-3-13 17:19:25 | 被阅次数 | 35902

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

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


该杂文来自: Excel杂文

上一篇:如何让Excel空单元格只能输入一次数据

下一篇:Excel功能键介绍

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计