【发布时间】:2020-06-23 16:12:39
【问题描述】:
我创建了一个宏,它可以对打开的邮件执行某些操作。我想创建一个规则,它会在我打开邮件时自动执行。
我不希望这条规则一直运行,只是当我打开一封邮件时,我不想在收到的每封邮件上都强制执行这条规则。
【问题讨论】:
我创建了一个宏,它可以对打开的邮件执行某些操作。我想创建一个规则,它会在我打开邮件时自动执行。
我不希望这条规则一直运行,只是当我打开一封邮件时,我不想在收到的每封邮件上都强制执行这条规则。
【问题讨论】:
关注@ZZA cmets,
试试这个代码:
Public WithEvents myItem As Outlook.MailItem
Private Sub Application_ItemLoad(ByVal Item As Object)
If Item.Class = olMail Then
Set myItem = Item
End If
End Sub
Private Sub myItem_Open(Cancel As Boolean)
'Your code
End Sub
在 ThisOutlookSession 中粘贴代码
编辑
为了避免'Your code 触发事件,我们需要一个事件禁用器:
Public WithEvents myItem As Outlook.MailItem
Public EventsDisable as Boolean
Private Sub Application_ItemLoad(ByVal Item As Object)
If EventsDisable = True Then Exit Sub
If Item.Class = olMail Then
Set myItem = Item
End If
End Sub
Private Sub myItem_Open(Cancel As Boolean)
EventsDisable=True
'Your code
EventsDisable=False
End Sub
【讨论】:
ThisOutlookSession 对象中?
Set Original= Application.ActiveExplorer.Selection(1),它应该是Set Original=myItem