CorelDRAWX4的C++插件开发(四十三)VBA的错误返回机制

文章讨论了VBA中的错误处理机制,特别是OnError语句的使用,如OnErrorGoTo用于在遇到错误时跳转到指定标签继续执行,OnErrorResumeNext忽略错误并继续执行下一行代码,而OnErrorGoTo0则用于关闭当前的错误处理。这些机制对于编写稳健的VBA程序至关重要,能确保程序在遇到小问题时仍能正常运行或至少完成关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 我们在写程序的时候往往不知道内部出了什么问题,所以问题返回机制还是比较重要的,程序可以不正确,但是程序一出问题直接就闪退崩溃也是一大麻烦,所以这里我们先探讨一下VBA的错误返回机制

  • 我们先上代码

    CorelDRAW.Optimization = True
    On errer GoTo cuowu

  '中间放需要的任意代码
  
cuowu:
    CorelDRAW.Optimization = False
    CorelDRAW.Refresh
  • 第一行的作用就是关闭渲染, 很清楚,在这种情况下如果是没有错误返回机制,那么一旦碰到了问题则在碰到问题的那一行就中断运行了,那么我们回到主程序的时候,画面自动更新并没有打开,所以这已经完完全全影响到了主程序的正常运行,所以,我们在第二行接上一句On errer GoTo cuowu这样子一句,那么当程序在运行当中碰到错误的时候会直接跳转至后面的cuowu:这一行的位置接着运行, 这样子就直接省略了还未运行的中间的一大段代码,让程序能够一直跑到结尾,虽碰上错误但主程序仍然正常,那么使用这种格式来写VBA程序就是非常有必要的
  • cuowu这个是代号,可以随意取名
  • 然后再看一下VB当中的无视错误On error resume next,如果写上刚才这一句,那么在后面出现错误的时候程序会直接无视这句错误继续执行相邻的下一句
  • On error的句式的作用范围就是从这一句起一直到End Sub或者End Function为止
   CorelDRAW.Optimization = True
   On errer resume next

 '中间放需要的任意代码
 
cuowu:
   CorelDRAW.Optimization = False
   CorelDRAW.Refresh
  • 这一段遇到了错误会继续执行当中的代码一直到结尾,并且不会报错,有时候程序会出现一些小问题但是影响并不大的时候可以使用这一句来忽略程序中的报错问题
  • 当然还有一种是On error goto 0,这一句就是禁止已经启动的错误处理程序,一般来说这一句就是用来关闭前面已经打开的 On error goto 或者是On error resume next, 也就是在On error goto 0这一句之后的代码不再处于错误处理的范围内,仍按照正常的一句一句执行,举个例子
    CorelDRAW.Optimization = True
    On errer GoTo cuowu
   '(1)放任意代码
  	On error goto 0
   '(2)放错误代码
cuowu:
    CorelDRAW.Optimization = False
    CorelDRAW.Refresh
  • 可以看到, 这个格式,我们在(1)处的代码碰到了问题会跳至cuowu处接着运行,而在(2)处如果碰到了问题就会直接报错中断并不会跳转到cuowu处了,所以On error goto 0就起到了一个关闭错误处理的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值