2014-11-04 79 views
1

我寫了一小段代碼,檢查電子郵件中的附加收件箱(除了我在Outlook中的主要地址)。VBA:並非所有的Outlook電子郵件顯示

當在PC上使用代碼時,只有附加收件箱添加到Outlook(作爲主收件箱)時,問題才顯現出來。顯然,代碼無法檢索所有電子郵件,只能檢索舊電子郵件。這很尷尬,因爲子文件夾甚至電子郵件的路徑似乎都可以找到,但不是新的。我可以在Outlook中看到他們沒有問題。

有沒有人有一個想法,爲什麼發生這種情況?正如我所說的,相同的代碼在帶有Outlook-Installation的PC上沒有任何問題,另一個主收件箱和收件箱需要作爲額外的檢查。

這是我用來訪問Outlook和電子郵件的代碼:

Dim objFolder As Outlook.Folder 
Dim objOL As Outlook.Application 
Set objOL = CreateObject("Outlook.Application")  
Set objFolder = objOL.GetNamespace("MAPI").Folders.Item("[email protected]").Folders.Item("Posteingang").Folders.Item("Subfolder-Name").Folders.Item("Subfolder-Name-2") 
With objFolder.Items(1) 
... 
+0

這個問題是與我相似,但沒有得到解決或者有:VBA展望的MailItem - 不顯示所有項目](http://stackoverflow.com/questions/24003325/vba-outlook-mailitem-不顯示所有項目) – plitvicer 2014-11-05 16:23:05

回答

0

爲什麼你總是在檢索項集合中的第一項?你不想循環的項目?

set objItems = objFolder.Items 
objItems.Sort "[ReceivedTime]" 
'now objItems is sorted 
+0

你是對的。通常我循環。此代碼僅用於演示此問題,因爲此第一封電子郵件並非最新版本,儘管Outlook中有一個較新版本。 – plitvicer 2014-11-05 15:38:26

+0

你不應該期望第一個項目是最古老的或最新的項目。除非您實際對Items集合進行排序,否則無法保證。看到上面更新的答案 – 2014-11-05 16:04:31

+0

這沒有幫助,對不起。 eMails沒有按照錯誤的順序排序,它們根本就不存在(至少對於VBA)。如果我循環遍歷所有電子郵件,則最新的電子郵件不會出現,無論是在列表的開頭還是結尾。 – plitvicer 2014-11-05 16:12:50

相關問題