使用Excel VBA统计后续电子邮件

我正在使用Office 2013,我试图在我的一个电子邮件文件夹中计算后续项目,并将此值写入单元格。

所以我在添加Outlook对象库引用后使用下面的代码:

Dim Folder As Outlook.MAPIFolder Dim objOL As Outlook.Application Set objOL = New Outlook.Application MailboxName = "mymailboxhere" Main_Folder_Name = "Inbox" Sub_Folder_Name = "Test" Set Folder = Outlook.Session.Folders(MailBoxName).Folders(Main_Folder_Name).Folders(Sub_Folder_Name) Dim itms As Outlook.Items Set itms = Folder.Items Dim FollowupItms As Outlook.Items Set FollowupItms = itms.Restrict("[FlagStatus] = 2") Followup = FollowupItms.Count Worksheets("Sheet1").Range("A1").Value = Followup 

出于某种原因,即使至less有一封邮件被标记为后续邮件,我仍然会将Followup计数设置为0

为了testing我已经尝试了以下内容:

 For Each Msg In itms MsgBox Msg.FlagStatus Next 

其中一个电子邮件的Flagstatus是2 ,在testing过程中在Msgbox中显示的是相同的。

当计算UnFlagged电子邮件或标记为“已完成”的电子邮件时,代码工作正常。

这对我来说绝对没有意义。 有什么想法吗?

MSDN说OlFlagStatus枚举:

…已弃用,不适用于您的代码。

(有关详细信息,请参阅http://msdn.microsoft.com/zh-CN/library/microsoft.office.interop.outlook.olflagstatus(v=office.14).aspx )

而是,请尝试MailItem.FlagRequest属性。 例如

 Set FollowupItms = itms.Restrict("[FlagRequest] = 'Follow up'") 

您可以在http://msdn.microsoft.com/zh-cn/library/office/ff861323(v=office.14).aspx上的MSDN上的MailItem.FlagRequest属性中find相关信息。