【问题标题】:Excel VBA with Outlook: How to use AdvancedSearch method to search for specific emails in Outlook?Excel VBA 与 Outlook:如何使用 AdvancedSearch 方法在 Outlook 中搜索特定电子邮件?
【发布时间】:2015-09-05 21:52:31
【问题描述】:

我这里有一个程序,它搜索 Outlook 的已发送邮件文件夹中的每封电子邮件,直到它在指定的电子邮件中找到标签(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

【问题讨论】:

    标签: excel email outlook vba


    【解决方案1】:

    对于 olFolder.Items 中的每个 olMail

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

    相反,您可以考虑使用 Items 类的 Restrict 或 Find/FindNext 方法。您可能会在以下文章中找到对它们的深入描述:

    当然你也可以考虑使用Application类的AdvancedSearch方法。使用此方法的主要好处是能够在后台运行搜索并搜索不同/多个文件夹中的项目。在Advanced search in Outlook programmatically: C#, VB.NET 文章中阅读有关所有好处的更多信息。

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

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 2022-01-01
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多