2016-01-19 45 views
0

我希望创建一个VBA程序来删除Outlook的Deleted Items文件夹中的项目。但是,我只希望通过匹配松散的字符串来移除某些用户的这些项目。删除已发送的已删除邮件中的字符串匹配项

例如,删除Deleted Items箱中的所有电子邮件从像"Plan_Group_"地址的用户,因为我可以从"Plan_Group_1""Plan_Group_2""Plan_Group_3",...等接收电子邮件。

目前这是我删除,但它是为Deleted Items箱中的所有项目:

Sub RemoveAutomaticItemsInDeletedItems() 
    Dim oDeletedItems As Outlook.Folder 
    Dim oItems As Outlook.Items 
    Dim i As Long 
    'Obtain a reference to deleted items folder 
    Set oDeletedItems = Application.Session.GetDefaultFolder(olFolderDeletedItems) 
    Set oItems = oDeletedItems.Items 
    For i = oItems.Count To 1 Step -1 
     oItems.Item(i).Delete 
    Next 
End Sub 

我怎么能这样扩大到只寻找那些松散从地址字符串匹配的邮件?

回答

1

使用一个If语句来检查的电子邮件地址:

If TypeName(oItems.Item(i)) = "MailItem" And oItems(i).SenderEmailAddress Like "Plan_Group_*" Then 
    oItems.Item(i).Delete 
End If 

或者:

If TypeName(oItems.Item(i)) = "MailItem" And Left$(oItems(i).SenderEmailAddress, 11) = "Plan_Group_" Then 
    oItems.Item(i).Delete 
End If 

仅有2种做

+0

我得到与'.SenderEmailAddress行的错误方式'是:'运行时错误'438':对象不支持这个属性或方法' – Sauron

+1

你需要确保'oItems.Item(i)'实际上是一个'MailItem'来使它工作 –

+0

是的,这是问题,完美的解决方案 – Sauron