【问题标题】:How to filter unflagged items in outlook using vba如何使用vba过滤outlook中未标记的项目
【发布时间】:2016-01-12 10:49:16
【问题描述】:

在创建宏时,该宏会从 Outlook 中的所有未标记消息中提取一些数据。我可以通过使用循环并检查收件箱中每封邮件的状态来获取数据,但是收件箱中的邮件数量很大。那么有没有办法只过滤未标记的项目,然后从过滤的邮件中获取数据。

我尝试了以下代码。但是它对我不起作用。

Mailbox = Cells(k, 1).Value

Set Fldr = olNs.Folders(Mailbox).Folders("inbox")
Fldr.Items.Restrict ("followupflag:unflagged")

有什么方法可以加快宏的速度。

【问题讨论】:

    标签: excel vba email outlook


    【解决方案1】:

    试试Restrict("[FlagStatus] = 0")。请记住,Restrict 返回 Items 集合的新实例。

    【讨论】:

      【解决方案2】:

      Outlook 对象模型提供以下方法来获取与您的条件相对应的项目子集:

      1. Items 类的Restrict 方法。请参阅How To: Use Restrict method to retrieve Outlook mail items from a folder 了解更多信息。

      2. Items 类的 Find/FindNext 方法。见How To: Use Find and FindNext methods to retrieve Outlook mail items from a folder (C#, VB.NET)

      3. Application 类的 AdvancedSearch 方法。见Advanced search in Outlook programmatically: C#, VB.NET。在 Outlook 中使用 AdvancedSearch 方法的主要好处是:

        • 搜索在另一个线程中执行。您无需手动运行另一个线程,因为 AdvancedSearch 方法会在后台自动运行它。
        • 可以在任何位置(即超出某个文件夹的范围)搜索任何项目类型:邮件、约会、日历、便笺等。 Restrict 和 Find/FindNext 方法可以应用于特定的 Items 集合(请参阅 Outlook 中 Folder 类的 Items 属性)。
        • 完全支持 DASL 查询(自定义属性也可用于搜索)。您可以在 MSDN 中的过滤文章中阅读有关此内容的更多信息。为了提高搜索性能,如果为商店启用了即时搜索,则可以使用即时搜索关键字(请参阅 Store 类的 IsInstantSearchEnabled 属性)。
        • 最后,您可以使用 Search 类的 Stop 方法随时停止搜索过程。

      最后,示例代码包含在文章中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        • 2019-01-01
        • 1970-01-01
        • 2021-05-04
        • 1970-01-01
        相关资源
        最近更新 更多