Fre*_*cer 1 outlook vba outlook-filter
我的 Outlook 框中有一个 VBA 侦听器,用于在收到来自特定电子邮件的邮件时执行操作。
问题是,如果我收到错误邮件(未送达电子邮件),那么我的条件是在不具有该属性的邮件上运行,因此我的方法崩溃。
我也不知道主题是什么。
有谁知道我是否可以测试该属性是否存在,或者是否有其他属性可以检查以确定我的发件人是否匹配?
提前谢谢了
Sub SetFlagIcon()
Dim mpfInbox As Outlook.Folder
Dim obj As Outlook.MailItem
Dim i As Integer
Set mpfInbox = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Test")
' Loop all items in the Inbox\Test Folder
For i = 1 To mpfInbox.Items.Count
If mpfInbox.Items(i).Class = olMail Then
Set obj = mpfInbox.Items.Item(i)
If obj.SenderEmailAddress = "someone@example.com" Then
'Set the yellow flag icon
obj.FlagIcon = olYellowFlagIcon
obj.Save
End If
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
Dim obj as a generic Object-除了收件箱之外还有其他对象,也可以尝试使用 Items.Restrict 方法(Outlook)来改善循环MailItem
Option Explicit
Sub SetFlagIcon()
Dim mpfInbox As Outlook.Folder
Dim obj As Object
Dim Items As Outlook.Items
Dim i As Long
Dim Filter As String
Set mpfInbox = Application.GetNamespace("MAPI").GetDefaultFolder _
(olFolderInbox).Folders("Temp")
Filter = "[SenderEmailAddress] = 'someone@example.com'"
Set Items = mpfInbox.Items.Restrict(Filter)
' Loop all items in the Inbox\Test Folder
For i = 1 To Items.Count
If Items(i).Class = olMail Then
Set obj = Items(i)
'Set the yellow flag icon
obj.FlagIcon = olYellowFlagIcon
obj.Save
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
Items.Restrict 方法将筛选器应用于Items集合,返回一个新集合,其中包含原始集合中与筛选器匹配的所有项目。
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |