3

我通过选择“跟进 - 标记已完成选项”将我的电子邮件移动到另一个文件夹。现在我想编写一个程序来检查我今天完成的许多电子邮件,通过比较标志完成日期和今天的日期。

但我无法找到如何访问标志完成日期。

你能帮忙吗?

谢谢,阿洛克

4

2 回答 2

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
于 2012-04-19T23:01:12.820 回答
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属性和 Mail Date 以实现您想要的。

高温高压

于 2012-04-19T19:05:13.287 回答