第41期:如何快速理解VBA错误处理

 2024-02-03 02:03:16  阅读 0

讲座和练习

往期相关VBA教学:VBA入门教程第一季,共41期

如果觉得有用的话可以带走本备课的草稿(有实际改动)

前言

本期我们主要讨论错误处理,而不是错误本身,因为错误的类型很多,而且很无聊。 谈论他们太无聊了。

尤其是我们这样的上班族,这种为了自娱自乐而写的代码,即使代码有错误、挂了,也没什么大不了的,找到并改正就好,但有时候是难免的,我们就分享一下和其他人。 使用,

所以,你写的东西一定要改进,比如容错性、人性化的提示、模块化的功能,方便别人,给你一些小小的满足。

(我们也不会涉及太多的磁盘和文件处理,它们都是小功能,所以我们不会展开太多)

主题

我们的讲解也是以解谜的方式进行,尽量用通俗的词语和例子让大家明白(不写成绕口令也可以)

先写一个简单的demo,然后F5执行

error是什么意思咋处理_error是什么异常_error处理请求发送失败

error处理请求发送失败_error是什么意思咋处理_error是什么异常

可见VBA的错误提示非常粗暴,而且还有调试选项。 这是我们在使用的时候不希望别人看到的。 这时候就需要出现错误处理。

每个人都应该接触过两种最常见的错误处理语句。

On Error Goto Line/Label在错误发生后启动错误处理机制,通过Goto跳转到指定行或标签执行错误处理代码(稍后我们会讨论扩展问题)

On Error Next 发生错误后,代码返回到错误的下一句并继续执行(一种非常通用的方法)

我们尝试添加万金油(未注释),到这里问题就基本可以解决了。本期结束

当然这是个玩笑,因为我们还要进一步优化。 如果你想优化,你必须理解这些语句。

所以我在错误时做了一些分割,转到行/标签,下一步

关于错误声明

启动错误处理程序并指定子例程在进程中的位置; 也可用于禁用错误处理程序。

语法

出错时转到行

出错时下一步

On Error GoTo 0' 禁用当前进程中任何已启动的错误处理程序(VBA 默认模式)

我觉得这个解释比较容易理解。 On Error代码告诉系统我已经启动了错误处理机制。 如何处理取决于下面的内容(后面一定要有东西,不然会报错)

转到语句

转到行/标签

一个跳转语句,唯一可能让你困惑的是这个LINE是什么?

因为很多人一开始就把Line和代码行数联系在一起,所以下面我就写demo1。

error是什么意思咋处理_error处理请求发送失败_error是什么异常

line不是代码行数,是你自己定义的位置。 其实你可以把它想象成一个标签,每个人都会习惯使用标签。

一般错误处理代码放在最后。 如果代码没有错误,则错误代码会在最后执行,所以必须在正常程序的末尾添加exit子语句。

错误处理程序结束后,恢复原来的操作。

[0]

下一个

行/标签

一般来说,它是错误处理机制中用于回调正常代码的语句。 0是发生错误的语句,next是发生错误的语句的下一句,最后一句是指定的标签。

出错时转到 0

这意味着错误处理机制恢复为默认。 很多人不明白为什么要恢复默认机制?

我们为 demo2 编写这样的代码

error处理请求发送失败_error是什么异常_error是什么意思咋处理

有时候你可以使用next来实现一些功能,但是你想在编写时暴露后续的错误,所以你再次打开它们。 当然,您也可以编写自己的错误处理代码。

至此基本知识点大家都知道了。

我们这样写最终完整版的demo3(当然这里的例子还不是太完美)

两个问题:为什么这个案子没有办完? 因为如果错误代码中仍然存在错误,那么激活的错误处理机制将无法处理自己的错误。

因此,如果想要万无一失,应该先结束级别错误机制,跳转到自己定义的错误处理程序,然后使用on error作为第二级防护,第二级防护会直接弹出友好的提示并退出程序。

error是什么意思咋处理_error处理请求发送失败_error是什么异常

小徐的教程【VBA入门】错误处理第41期已经结束了。 VBA第一季已经结束。 视频风格也在不断变化。 希望能够对大家的工作有所帮助。 希望大家帮我转发一下。 欢迎大家关注我。 另外我们第二季再见,再见

标签: vba

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码