我希望从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行(失败并出现错误“错误的参数数量或无效的属性赋值)之外 - 显然我只想要一条删除行,但两者都显示我尝试过的选项。” / p>
Debug.Print favGroup.NavigationFolders.count
Set oFolder = Application.ActiveExplorer.CurrentFolder
While favGroup.NavigationFolders.count > 0
favGroup(1).Delete
favGroup.NavigationFolders(1).Delete
Wend
答案 0 :(得分:1)
您必须使用Remove
集合的NavigationFolders
方法。它需要NavigationFolder
作为参数。没有删除方法。
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
方法的原因。