VBA 学习笔记 错误处理、异常处理

您所在的位置:网站首页 vba错误处理无法注册 VBA 学习笔记 错误处理、异常处理

VBA 学习笔记 错误处理、异常处理

2024-01-09 09:53| 来源: 网络整理| 查看: 265

VBA 学习笔记 错误处理、异常处理 On Error 语句语法 示例出错后打印日志,然后继续出错一直重试 参考资料

On Error 语句

启用错误处理例程并指定该例程在程序中的位置;还可用于禁用错误处理例程。 如果您未使用 On Error 语句,则出现任何运行时错误都是致命的;也就是说,将显示错误消息并停止执行。

语法

On Error GoTo line On Error Resume Next On Error GoTo 0 On Error 语句语法可具有以下任意形式:

语句说明On Error GoTo line1. 如果发生运行时错误,控制分支将跳转到 line 参数所指定的行,开始进行错误处理。2. line 参数是任何 行标签或 行号。3. 指定的 line 必须与 On Error 语句在同一个过程中;否则将出现 编译时错误。On Error Resume Next在出现运行时错误时,将转到下一条语句,继续执行。 在访问对象时,使用此形式而不是 On Error GoTo。On Error GoTo 0禁用当前过程中的任何已启用的错误处理程序。———————————— 示例 出错后打印日志,然后继续

这里用的是 cmd 的 echo 输出的日志,换行不会处理,先替换成" vbCrLf "字符串了。

Sub 遍历文件夹处理文档() On Error GoTo ErrorHandler ' 出错时跳转 ErrorHandler: Dim CurrPath$, CurrFile$ CurrPath = ThisDocument.Path & "\" ' 当前文件的路径 CurrFile = Dir(CurrPath) ' 获取第一个文件 Do Until CurrFile = "" ' 只要不为空就继续 处理文档(CurrPath & CurrFile) NextFile: CurrFile = Dir() ' 获取下一个文件 Loop Exit Sub ErrorHandler: ' 开始错误处理 log "================================================================================" log "【错误文件】" & CurrPath & CurrFile log Err.Number & ":" & Err.Description GoTo NextFile ' 错误处理完成,跳回去继续 End Sub '写日志 Sub log(logMsg As String) Dim logFile As String logFile = ThisDocument.Path & "\" & Replace(ThisDocument.Name, ".docm", ".log") ' 日志文件路径 Shell "cmd.exe /c echo " & Format(Now, "YYYY-MM-DD HH:MM:SS") & " ===》 " & Replace(logMsg, vbLf, " vbCrLf ") & " >> " & logFile End Sub 出错一直重试

一下代码实现用户输入判断,出错可以一直重试。

Sub demo() Dim birthday As Date On Error Resume Next ' 出错时忽略,继续向下运行。 Do birthday = InputBox ("输入您的生日(yyyy-MM-dd)") ' 假设此处用户没有输入日期。 If Err. Number 0 Then MsgBox "您的输入有误!请按照提示的日期格式输入。" ' 如有需要,可以在此提醒用户。 GoTo ErrorHandler ' 跳转到标签位置 End IF ' 业务逻辑代码 ErrorHandler: ' 定义标签 errorTag, 名字自己起的。 Err. Clear Loop End Sub 参考资料

微软Docs 》Office 》VBA 参考 》语言参考 》参考》 语句 》On Error 语句 微软Docs 》Office 》VBA 参考 》语言参考 》参考》 语句 》Resume语句 微软Docs 》Office 》VBA 参考 》语言参考 》参考》 对象 》Err 对象 微软Docs 》Office 》VBA 参考 》语言参考 》用户界面帮助 》错误消息 》可捕获的错误 微软Docs 》Office 》VBA 参考 》语言参考 》术语表 》VBA (Visual Basic for Applications )术语表 微软Docs 》Office 》VBA 参考 》语言参考 》术语表 》VBE(Visual Basic 编辑器)术语表



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3