2017-02-14 74 views
1

我有一个前景宏读取所有未读电子邮件的主题行。展望VBA日期时间过滤器

Sub ReadMails() 
    Set objOutlook = CreateObject("Outlook.Application") 
    Set objNamespace = objOutlook.GetNamespace("MAPI") 
    Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) 
    Set objFolderSrc = objFolder.Folders("My Own Folder") 

    Dim Subjects() As String 
    ReDim Subjects(1 To 1) As String 

    Set colItems = objFolderSrc.Items 
    Set colFilteredItems = colItems.Restrict("[UnRead] = False") 

    For Each objMessage In colFilteredItems 
     Subjects(UBound(Subjects)) = objMessage.ConversationTopic 
     ReDim Preserve Subjects(1 To UBound(Subjects) + 1) As String 
    Next 
End Sub 

取而代之,我需要读取当天早上到上午8点之间在当天早上发送的电子邮件。

如何添加过滤器

+0

什么是'olFolderInbox'? – Vityata

+0

@Vityata它是收到所有电子邮件的文件夹。这是根收件箱文件夹不要担心。所有的作品 –

+0

嗯,我只是想复制你已有的东西,并从那里继续。一般来看看这里:https://msdn.microsoft.com/en-us/library/office/ff869597.aspx特别是这行:'sFilter =“[LastModificationTime]>'”&Format(“1/15/99 3:30 pm“,”ddddd h:nn AMPM“)&”'“' – Vityata

回答

0

尝试TimeValue Function

Option Explicit 
Public Sub Example() 
    Dim EightAM As Date 

    EightAM = TimeValue("08:00:00 AM") 

    If (TimeValue(Now()) <= EightAM) Then 
     ' Do something/Read Email 
     Debug.Print TimeValue(Now()) 
    Else 
     ' Do something else 
     Debug.Print "bla bla !!!" 
    End If 
End Sub