MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

VBA如何返回错误号,一个Err对象解决所有问题

2025-03-07 19:27 huorong 精选文章 5 ℃ 0 评论

No.1

编程过程中,程序出现错误不可避免,遇到问题及时返回错误提示,然后按照相关问题进行相应的处理,这就是编程过程,并不像行云流水般敲键盘,大多时候是看着屏幕发呆,大脑不停地旋转,思考问题出在什么地方。

但是如果有一个合理的错误提示,过程就简单多了。

本节就主要介绍一下VBA编程中如何获取返回错误号,并且附错误号说明。

No.2

Err对象方法

Err对象有两个方法,一个是Clear,一个是Raise。

可在处理错误后使用 Clear 显式清除 Err 对象。 只要执行以下任意语句,就会自动调用 Clear 方法:

  • 任何类型的 Resume 语句
  • Exit Sub 、 Exit Function 、 Exit Property
  • 任何 On Error 语句

Raise用于生成运行时错误, 可用于替代"Error" 语句。

Raise 对于在编写类模块时生成错误很有用,因为相比于通过 Error 语句生成错误, Err 对象可以提供更丰富的信息。 例如,通过 Raise 方法,可在 Source 属性中指定生成错误的源,可以引用有关错误的联机帮助,等等。

Err错误号以及说明

Err对象属性

  • Description 返回或设置包含与对象关联的描述性字符串的字符串表达式
  • HelpContext 返回或设置包含帮助文件中的主题的上下文 ID 的字符串表达式
  • HelpFile 返回或设置一个包含帮助文件的完全限定路径的字符串表达式
  • Number 返回或设置指定错误的数值
  • Source 指定表示生成错误的对象的字符串表达式

No.3

Err示例

本例中,可实现模拟错误号发生,下拉框中列出所有错误号代码,选择任意错误号,单击错误代码按钮即可弹出错误号提示。

代码

Private Sub CommandButton1_Click()
On Error Resume Next    '
Dim Msg, x
x = Me.ComboBox1.Value'选择错误号
Err.Clear
Err.Raise x   
If Err.Number <> 0 Then
    Msg = "Error # " & Str(Err.Number) & " was generated by " _
            & Err.Source & Chr(13) & Err.Description
    MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
End If
End Sub

Err对象学习编程中是一个渐进的过程,可以在遇到某些问题的时候进行错误处理,由于其错误号太多,错误类型也难以全部记住,所以没必要全部掌握。

同时在编程中有一个通用方法,防止错误发生,那就是要在代码中写入如下一行代码。

On Error Resume Next

此行代码可理解为,当错误发生的时候跳过错误行继续下一行执行程序。

可避免较多的错误发生。

欢迎关注、收藏

---END---

Tags:subcommand

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言