Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 检查senderEmailAddress_Vba_Outlook_Outlook Filter - Fatal编程技术网

Vba 检查senderEmailAddress

Vba 检查senderEmailAddress,vba,outlook,outlook-filter,Vba,Outlook,Outlook Filter,我在outlook框的VBA中有一个侦听器,用于在用户从特定电子邮件接收邮件时执行操作 问题是,如果我收到一封错误邮件(未送达邮件),那么我的条件是在一封没有该属性的邮件上运行,因此我的方法崩溃 我也不知道主题是什么 是否有人知道我是否可以测试该属性是否存在,或者是否有其他属性可以检查以确定我的发件人是否匹配 非常感谢 Sub SetFlagIcon() Dim mpfInbox As Outlook.Folder Dim obj As Outlook.MailItem Dim

我在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
Dim obj作为通用对象
-收件箱中除了
邮件项目
之外还有其他对象,也可以尝试使用来改进循环

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

将筛选器应用于集合,返回一个新集合,其中包含原始集合中与筛选器匹配的所有项

Dim obj作为通用对象
-收件箱中除了
邮件项目
之外还有其他对象,也可以尝试使用来改进循环

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

将筛选器应用于集合,返回一个新集合,其中包含原始集合中与筛选器匹配的所有项