使用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相关信息。