如何使用 VBA 删除 outlook 中的收藏夹
How do you delete favorite folders in outlook using VBA
我想从outlook收藏夹中删除所有文件夹然后替换它们,但是删除似乎不起作用。我的代码有什么问题。
设置 Objects 工作正常
' 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
您必须使用 NavigationFolders
collection 的 Remove
方法。它以 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
方法的原因。
我想从outlook收藏夹中删除所有文件夹然后替换它们,但是删除似乎不起作用。我的代码有什么问题。
设置 Objects 工作正常
' 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
您必须使用 NavigationFolders
collection 的 Remove
方法。它以 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
方法的原因。