2009-11-23 221 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提出了一个非常好的方法,只要有剩余物品,就可以保证不断删除收藏中的物品。只是在方法运行时不要自己删除项目,否则可能会遇到问题。

相关问题