【问题标题】:outlook macro - why doesn't this delete all items from deleted folder?Outlook 宏 - 为什么不删除已删除文件夹中的所有项目?
【发布时间】:2015-02-24 03:20:03
【问题描述】:

我在 Outlook 中有以下宏来清除我已删除的文件夹。这很奇怪,因为它似乎没有删除所有条目。我必须运行几次才能清除已删除的项目文件夹。 (通常是 2 或 3 次)。每次文件夹中已删除项目的数量确实减少了,但我不明白为什么所有内容都没有在第一时间被清除。

这是我的代码;有什么问题吗?

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

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    试试:

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

    从集合中删除项目可能会出现问题。

    【讨论】:

    • 这有点工作,但它有一个错误。我将使用修复程序编辑您的答案。 .
    【解决方案2】:

    通过删除迭代器“下方”的集合中的对象,它不能真正遍历集合中的每个项目,因为集合正在更改。 Remou 想出了一个非常好的方法,只要有剩余物品,就可以保证不断删除集合中的物品。只是不要在方法运行时自己删除项目,否则您可能会遇到问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 2023-03-21
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多