- 系统环境:Windows 10
- Excel:2010版本
今天讲讲Excel中常见的警告及报错处理方法
Part 1:警告
- 代码运行完后,希望自动保存工作簿
ThisWorkbook.Save
- 但运行该代码会弹出隐私问题警告,和在Excel界面直接保存.xlsm格式文件弹出的警告一致,如图1所示,需要人为点击确定才可以关闭弹窗。如何去掉这个人为点击的步骤,在ThisWorkbook.Save前加上下面代码即可,关闭警告及提示信息

图1 警告信息
Application.DisplayAlerts = False
以上代码默认情况下,取值为True,即显示警告信息
Part 2:报错处理方法
- 程序编写后运行,可能会发生错误
- 如果不希望因为错误而暂停程序的执行,那么可以在过程的开始加上以下代码
- 有的时候,希望在不暂停程序的情况下,捕捉到程序运行中的错误,并给出提示,可以使用Err.Number是否等于0来捕捉错误
On Error Resume Next
Part 3:代码
Sub Test() Dim i As Integer On Error Resume Next Application.DisplayAlerts = False ThisWorkbook.Save i = "字符串" If Err.Number <> 0 Then Debug.Print ("Err.Number1=" & Err.Number) Debug.Print ("Err.Description=" & Err.Description) End If Err.Clear Debug.Print ("Err.Number2=" & Err.Number) On Error GoTo 0 i = "字符串"End Sub

图2 代码截图及运行结果
Part 4:部分代码解读
- On Error Resume Next 关闭错误提示,继续运行
- On Error GoTo 0打开错误提示
- Err.Number=0表示无错误
- Err.Description提供对错误的描述
- 本文中存在的错误是变量i定义为整型Integer,但却以字符串对其赋值,导致类型不匹配错误
- 第一次由于使用On Error Resume Next不弹窗报错,但On Error GoTo 0打开错误提示后再次犯错立即报错
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条