Excel VBA with Outlook:如何使用AdvancedSearch方法在Outlook中搜索特定的邮件



我在这里有一个程序,它在Outlook的Sent Items文件夹中搜索每封电子邮件,直到它在指定的电子邮件中找到标签(URL),打开它并发送回复。

但是我的"已发送邮件"文件夹里有很多邮件,所以每封邮件都要花很多时间来搜索。

我读到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

为每个olMail在olFolder。项目

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

相反,您可以考虑使用Items类的Restrict或Find/FindNext方法。您可以在以下文章中找到对它们的深入描述:
  • 如何:使用Find和FindNext方法从文件夹中检索Outlook邮件项目(c#, VB.NET)
  • 如何:使用Restrict方法从文件夹
  • 中检索Outlook邮件项目

当然您可以考虑使用Application类的AdvancedSearch方法。使用这种方法的主要好处是能够在后台运行搜索并搜索不同/多个文件夹中的项目。阅读更多有关在Outlook中以编程方式进行高级搜索的所有好处:c#, VB。净的文章。

最后,您可能会发现Outlook 2010中的VBA入门文章很有帮助。

最新更新