2014-06-02 3 views
0

Нижеприведенный код не отображает все мои письма в папке «Входящие».VBA Outlook Mailitem - не отображает все элементы

Первый элемент в моем списке - это письмо со вчерашнего дня и последнего 22.04.2014, хотя мой почтовый ящик содержит больше, чем это.

Sub CheckEmail() 

On Error Resume Next 

Dim outApp As Outlook.Application 
Dim outNs As Outlook.Namespace 
Dim outFldr As Outlook.MAPIFolder 
Dim outEmail As Outlook.MailItem 

Dim p As Integer 
p = 0 

Set outApp = CreateObject("Outlook.Application") 
Set outNs = outApp.GetNamespace("MAPI") 
Set outFldr = outNs.GetDefaultFolder(olFolderInbox) 

Dim searcht As String 

'find search string 

' do search 

     For Each outEmail In outFldr.Items 

      With fmShowsInboxEmails.ListBox1 
       .AddItem outEmail.EntryID 
       .List(p, 1) = outEmail.ReceivedTime 
       .List(p, 2) = outEmail.Subject 
       .List(p, 3) = outEmail.SenderEmailAddress 
       .List(p, 4) = outEmail.Attachments.Count 
      End With 

      p = p + 1 

     Next outEmail 

On Error GoTo 0 

Set outApp = Nothing 
Set outNs = Nothing 
Set outFldr = Nothing 
Set outEmail = Nothing 

fmShowsInboxEmails.Show 

End Sub 
+0

замечаете ли вы что-либо конкретное по поводу писем, которые он не список ? –

+0

Ничего не могу заметить! Некоторые сегодня, а затем, кажется, перечисляют КАЖДОЕ письмо до последнего, а затем останавливаются. –

+0

В окне списка может храниться столько элементов, сколько у вас есть, 65534. Сколько из них возвращается? – Sorceri

ответ

1

"несоответствие типов на следующей outEmail"

Элементов в папке Входящие не должно быть mailitems.

Как только у вас есть Dim outEmail As Variant, проверьте, что outEmail является почтовым ящиком перед добавлением в список.

0

Я думаю, что внешний вид имеет значение только элементы, хранящиеся локально в папке в автономном режиме - так сообщения, хранящиеся на сервере, не будет частью outFldr.Items