제목 줄을 기반으로받은 편지함의 하위 폴더를 찾는 검색이 있습니다. 나는 가장 최근의 메일을 반환하려고하고 코드를 사용하고 있습니다 :VBA Outlook - 날짜 혼란으로 정렬
Items.Sort "[ReceivedTime]", True
을 나는 또한 괄호 사이에 CREATIONTIME 및 SentOn을 시도했습니다.
2016년 9월 23일 오전 9시 31분
2016년 10월 19일 오후 12시 57분
9/29 :하지만 검색은 다음과 같은 순서로 같은 제목으로 검색 메일을 반환/2016 오전 10시 54분
내 코드 : 희미한 FLDR으로 Outlook.MAPIFolder Outlook.Items 로 어둡게 항목 희미한 olMail
Set oOLapp = CreateObject("Outlook.application")
Set olNs = oOLapp.GetNamespace("MAPI")
For step = 1 To MaxCount
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
For Each Fldr in Fldr.Folders
Set Items = Fldr.Items
Items.Sort "[ReceivedTime]", True
For Each olMail in Items
If InStr(olMail.Subject, "Text" & Cstr(step))
olMail.Display Then
Set Msg = oOLapp.CreateItem(olMailItem)
.Attachments.Add olMail, olEmbeddeditem
Set Msg = Nothing
End If
Next
Next
Next
변형으로
검색된 제목 줄과 함께 메일의 최신 인스턴스 하나만 필요합니다. 가장 빠른 메일을 반환 한 이유와 가장 최근의 메일을 반환하는 이유에 대한 아이디어가 있습니까?
은 또한 대부분의 사람들이 가장 최근의 코드를 검색 할 때 가장 성공을 것 같다 경우 아래의 코드를 시도했지만 나는 Error404는 "경계의 밖으로 배열 인덱스"고 주장 얻을.
For step = 1 To MaxCount
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
For i = Fldr.Folders.Count To 1 Step -1
Set Fldr = Fldr.Folders(i)
For a = Fldr.Items.Count To 1 Step - 1
Set olMail = Fldr.Items(a)
//Search and attachment code. See previous code
Next
Next
Next
결과 :
내 코드는에 보이는 폴더에 따라 순차적으로 메일을 끌어 최초의 타임 스탬프와 함께 메일이 전에 나타난 폴더로 가니 라. 다른 메일 그래서 내 코드가 최신 것 대신 가장 빠른 것을 끌어 당기는 이유입니다.
전체 코드를 표시하십시오. MAPIFolder.Items를 한 번만 검색하고 모든 호출에 대해 캐시합니까? 매번 MAPIFolder.Items를 계속 호출 하시겠습니까? –
@DmitryStreblechenko 내 코드에 내 코드를 포함 시켰습니다. – Joshua
항목을 기록하는 코드는 무엇입니까? ReceivedTime 속성을 기록 했습니까? –