我通过选择“跟进 - 标记完成选项”移动我的电子邮件到另一个文件夹。 现在我想编写一个程序,通过比较Flag完成日期和今天的日期来检查我今天完成的多封电子邮件。
但我无法找到如何访问Flag完成日期。
你能帮忙吗?
谢谢, 阿洛克
答案 0 :(得分:4)
该属性是Outlook.MailItem.TaskCompletedDate。尝试类似:
Sub GetCompletedToday()
Dim olNameSpace As Outlook.NameSpace
Dim olFolder As Outlook.Folder
Dim olMailItem As Outlook.MailItem
Dim CompletedTodayCount As Long
Set olNameSpace = Application.GetNamespace("MAPI")
Set olFolder = olNameSpace.Folders(1).Folders("tester")
For Each olMailItem In olFolder.Items
If olMailItem.TaskCompletedDate = Date Then
CompletedTodayCount = CompletedTodayCount + 1
End If
Next olMailItem
Debug.Print CompletedTodayCount
End Sub
答案 1 :(得分:0)
您可以使用expression.FlagStatus
请参阅此链接
主题:FlagStatus属性
链接:http://msdn.microsoft.com/en-us/library/aa212013%28v=office.11%29.aspx
例如,这将为您提供所有选定电子邮件的状态
展望VBA代码
Option Explicit
Sub Sample()
Dim Messages As Selection
Dim Msg As MailItem
Dim NamSpace As NameSpace
Set NamSpace = Application.GetNamespace("MAPI")
Set Messages = ActiveExplorer.Selection
If Messages.Count = 0 Then Exit Sub
For Each Msg In Messages
Debug.Print Msg.FlagStatus
Next
End Sub
对于No flags
的邮件,它会为您提供0
对于Mark Completed
,它会为您提供1
和
对于Other flags
,它会为您提供2
因此,您实际上可以使用If
语句来检查.FlagStatus
属性和邮件日期,以达到您想要的效果。
HTH