2015-09-05 279 views
0

我在这里有一个程序,通过Outlook中已发邮件文件夹中的每封电子邮件进行搜索,直到找到指定电子邮件中的标签(URL),打开它并发送回复。使用Outlook的Excel VBA:如何使用AdvancedSearch方法在Outlook中搜索特定的电子邮件?

但是,我在“已发送邮件”文件夹中有很多电子邮件,因此需要花费很多时间来搜索每封电子邮件。

我读过AdvancedSearch方法是搜索特定电子邮件的更快捷的方法。但我真的不知道它是如何工作的,这就是为什么我需要你帮助的人。

如何在此类程序中使用AdvancedSearch方法?

欣赏你的帮助球员。

Set olApp = New Outlook.Application 
Set olNameSpace = olApp.GetNamespace("MAPI") 
Set olFolder = olNameSpace.GetDefaultFolder(olFolderSentMail) 

For Each olMail In olFolder.Items 

    tagLink = Sheets("Data").Cells(rowCount, 6) 

    If InStr(olMail.HTMLBody, tagLink) <> 0 Then 

    With olMail.Reply 

     .Display 
     .To = sMailTo 
     .CC = sMailCC 
     .HTMLBody = mailBody & vbLf & .HTMLBody 

     .Send 

    End With 

    End If 

Next olMail 

回答

0

对于每个olMail在olFolder.Items

不要遍历文件夹中的所有项目。特别是如果你在文件夹中有大量的项目。

相反,您可以考虑使用Items类的Restrict或Find/FindNext方法。您可能会发现他们在深度在下面的文章中描述:

当然,你可以考虑使用应用程序类的AdvancedSearch方法。使用此方法的主要好处是能够在后台运行搜索并搜索不同/多个文件夹中的项目。详细了解Advanced search in Outlook programmatically: C#, VB.NET文章中的所有优点。

最后,您可能会发现Getting Started with VBA in Outlook 2010文章有帮助。

相关问题