我正在使用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
出于某种原因,即使至少有一封电子邮件被标记为后续,我仍然会将跟进计数设为 0 。
为了测试我已尝试过以下内容:
For Each Msg In itms
MsgBox Msg.FlagStatus
Next
其中一封电子邮件的Flagstatus 2 ,测试期间在Msgbox中显示相同内容。
在计算UnFlagged的电子邮件或标记为已完成的电子邮件时,代码可以正常工作。
这对我来说毫无意义。有什么想法吗?
答案 0 :(得分:2)
MSDN说OlFlagStatus枚举:
...已弃用,不应在您的代码中使用。
相反,请尝试MailItem.FlagRequest
属性。 E.g。
Set FollowupItms = itms.Restrict("[FlagRequest] = 'Follow up'")
您可以在MSDN上找到有关MailItem.FlagRequest
属性的信息
http://msdn.microsoft.com/en-us/library/office/ff861323(v=office.14).aspx。