我通过选择“跟进 - 标记已完成选项”将我的电子邮件移动到另一个文件夹。现在我想编写一个程序来检查我今天完成的许多电子邮件,通过比较标志完成日期和今天的日期。
但我无法找到如何访问标志完成日期。
你能帮忙吗?
谢谢,阿洛克
该属性是 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
您可以使用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
属性和 Mail Date 以实现您想要的。
高温高压