2009-11-23 131 views
1

我在Outlook中有以下宏來清除我刪除的文件夾。這很奇怪,因爲它似乎並沒有刪除所有條目。我必須運行幾次才能清除已刪除的項目文件夾。 (通常2或3次)。每次在文件夾中刪除的項目數量都會減少,但我不明白爲什麼一切都不會在第一時間消失。outlook宏 - 爲什麼不刪除刪除文件夾中的所有項目?

這是我的代碼;哪裏不對了?

Public Sub EmptyDeletedEmailFolder() 

    Dim outApp As Outlook.Application 
    Dim deletedFolder As Outlook.MAPIFolder 
    Dim item As Object 
    Dim entryID As String 

    Set outApp = CreateObject("outlook.application") 
    Set deletedFolder = outApp.GetNamespace("MAPI").GetDefaultFolder(olFolderDeletedItems) 

    For Each item In deletedFolder.Items 
     item.Delete    ' Delete from mail folder 
    Next 

    Set item = Nothing 
    Set deletedFolder = Nothing 
    Set outApp = Nothing 

End Sub 

回答

6

嘗試:

For i = deletedFolder.Items.Count To 1 Step -1 
    deletedFolder.Items(i).Delete    '' Delete from mail folder 
Next 

有可能從集合刪除項目的問題。

+0

這種有點奏效,但它有一個錯誤。我會修復你的答案。 。 – leora 2009-11-23 20:36:34

+0

最新帖子現在有效。 。 。 – leora 2009-11-23 20:37:28

+0

謝謝:) char,char – Fionnuala 2009-11-23 20:41:41

1

通過刪除迭代器中「下方」集合中的對象,它無法真正覆蓋集合中的每個項目,因爲集合正在更改。 Remou提出了一個非常好的方法,只要有剩餘物品,就可以保證不斷刪除收藏中的物品。只是在方法運行時不要自己刪除項目,否則可能會遇到問題。

相關問題