【问题标题】:How do you delete favorite folders in outlook using VBA如何使用 VBA 删除 Outlook 中最喜欢的文件夹
【发布时间】:2015-06-23 11:56:23
【问题描述】:

我希望删除 Outlook 收藏夹中的所有文件夹,然后替换它们,但删除似乎不起作用。我的代码有什么问题。

设置对象工作正常

' Get the "Favorite Folders" navigation group
Set favGroup = Application.ActiveExplorer.NavigationPane.Modules.GetNavigationModule(olModuleMail).NavigationGroups.GetDefaultNavigationGroup(olFavoriteFoldersGroup)

这行得通

Set inboxFldr = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
favGroup.NavigationFolders.Add (inboxFldr)

除了 .delete 行(由于错误“参数数量错误或属性分配无效”而失败)之外,所有这些都有效 - 显然我只想要一个删除行,但将两者都放入以显示我尝试过的选项。

Debug.Print favGroup.NavigationFolders.count
Set oFolder = Application.ActiveExplorer.CurrentFolder
While favGroup.NavigationFolders.count > 0
    favGroup(1).Delete
    favGroup.NavigationFolders(1).Delete
Wend

【问题讨论】:

    标签: vba outlook-2007


    【解决方案1】:

    您必须使用NavigationFolders 集合的Remove 方法。它以NavigationFolder 作为参数。没有 Delete 方法。

    Sub RemoveAllFavorites()
    
        Dim favGroup As NavigationGroup
        Dim favFldrs As NavigationFolders
    
        Set favGroup = Application.ActiveExplorer.NavigationPane.Modules.GetNavigationModule(olModuleMail).NavigationGroups.GetDefaultNavigationGroup(olFavoriteFoldersGroup)
        Set favFldrs = favGroup.NavigationFolders
    
        Do While favFldrs.Count > 0
            favFldrs.Remove favFldrs.Item(1)
        Loop
    
    End Sub
    

    我猜是这样,因为您并没有真正删除任何内容。例如,收件箱不会因为您从收藏夹中删除而被删除。这一定是他们使用Collection.Remove(Collection.Item) 方法而不是Collection.Item.Delete 方法的原因。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2017-11-13
      • 2018-11-08
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多