vba - 发生错误事件时,停止 Outlook VBA 在 ItemSend() 中发送邮件
问题描述
如果在 ItemSend() 事件中的运行时发生错误,则会发送 Outlook mailitem。放入Cancel = True
代码甚至不能阻止这种情况的发生。它是固有的 VBA 缺陷吗?
我将如何解决这个问题?欢迎任何想法。
Public WithEvents myApp As Outlook.Application
Sub Initialize_handler()
Set myApp = Application
End Sub
Private Sub myApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler_myApp_ItemSend
Cancel = True
' Do something erroneous
Exit Sub
ErrorHandler_myApp_ItemSend:
Cancel = True
MsgBox "Error: " Err.Description
Err.Clear
End Sub
解决方案
我没有解释为什么关闭检查员时没有发送邮件。
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objInsp As Inspector
On Error GoTo ErrorHandler_Application_ItemSend
' Do something erroneous
Err.Raise 1
Exit Sub
ErrorHandler_Application_ItemSend:
Cancel = True
MsgBox "Error: " & Err.Description
Set objInsp = Item.GetInspector
' Look for the mail in the drafts folder
objInsp.Close olSave
End Sub
推荐阅读
- python - 匹配python列表的excel列
- julia - 在 for eachrow 循环中使用变量会导致错误
- python - mergeTwoLists:内存在 Python 中是如何工作的?
- c# - 如何让我的 writeline 输出显示数值到最接近的 2 位小数?
- django - 使用 django-storages 指向静态文件的 URL
- android - 找不到 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型对象的参数的方法 classpath()
- javascript - 如何根据 IF-ELSE 结果有条件地更改函数中的变量?
- python - 如何解决在 windows 中安装 setuptools python 时出错
- haskell - Haskell 类型签名:关于 lastButOne 程序类型签名的问题
- html - 与 HTML 链接的 CSS 文件在免费托管服务器上上传时不起作用